@@ -49,29 +49,36 @@ macro(api_target NAME DIRECTORIES)
4949 -Os
5050 )
5151
52+ if (SOS_IS_ARM)
53+ target_compile_options (${RELEASE_TARGET}
54+ PUBLIC
55+ -fno-threadsafe-statics
56+ )
57+ endif ()
58+
5259 target_include_directories (${RELEASE_TARGET}
5360 INTERFACE
5461 $<INSTALL_INTERFACE :include /${NAME} >
5562 $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR } /include >
5663 $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR } /../../include >
5764 )
5865
59- foreach (DIRECTORY ${DIRECTORIES} )
66+ foreach (DIRECTORY ${DIRECTORIES} )
6067 target_include_directories (${RELEASE_TARGET}
6168 INTERFACE
6269 $<INSTALL_INTERFACE :include /${DIRECTORY} >
6370 $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR } /../${DIRECTORY} /include >
6471 )
65- endforeach (DIRECTORY )
72+ endforeach (DIRECTORY )
6673
6774 string (COMPARE EQUAL ${NAME} API IS_API)
6875 set (LOCAL_DIRECTORIES ${DIRECTORIES} )
69- if (IS_API AND SOS_IS_ARM)
76+ if (IS_API AND SOS_IS_ARM)
7077 #list(APPEND LOCAL_DIRECTORIES StratifyOS_crt)
7178 target_compile_options (${RELEASE_TARGET}
7279 INTERFACE
7380 -mlong-calls )
74- endif ()
81+ endif ()
7582
7683 target_include_directories (${RELEASE_TARGET}
7784 PUBLIC
@@ -84,7 +91,7 @@ macro(api_target NAME DIRECTORIES)
8491 add_library (${DEBUG_TARGET} STATIC )
8592 sos_sdk_copy_target (${RELEASE_TARGET} ${DEBUG_TARGET} )
8693
87- if (SOS_IS_LINK)
94+ if (SOS_IS_LINK)
8895 sos_sdk_library_target (COVERAGE ${NAME} "" coverage ${SOS_ARCH} )
8996 add_library (${COVERAGE_TARGET} STATIC )
9097 sos_sdk_copy_target (${RELEASE_TARGET} ${COVERAGE_TARGET} )
@@ -100,10 +107,10 @@ macro(api_target NAME DIRECTORIES)
100107
101108 get_target_property (SOURCES ${COVERAGE_TARGET} SOURCES )
102109
103- foreach (SOURCE ${SOURCES} )
110+ foreach (SOURCE ${SOURCES} )
104111 get_filename_component (FILE_NAME ${SOURCE} NAME )
105112 list (APPEND GCOV_SOURCES ${MY_DIR} /CMakeFiles/${COVERAGE_TARGET} .dir/src/${FILE_NAME} .gcda)
106- endforeach ()
113+ endforeach ()
107114
108115 add_custom_target (coverage_mkdir_${COVERAGE_TARGET}
109116 COMMAND mkdir -p ${CMAKE_CURRENT_SOURCE_DIR } /coverage/${COVERAGE_TARGET}
@@ -120,27 +127,27 @@ macro(api_target NAME DIRECTORIES)
120127 DEPENDS coverage_mkdir_${COVERAGE_TARGET}
121128 )
122129
123- endif ()
130+ endif ()
124131
125132 sos_sdk_library_add_arch_targets ("${RELEASE_OPTIONS} " ${SOS_ARCH} "${LOCAL_DIRECTORIES} " )
126133 sos_sdk_library_add_arch_targets ("${DEBUG_OPTIONS} " ${SOS_ARCH} "${LOCAL_DIRECTORIES} " )
127134
128- if (IS_API)
135+ if (IS_API)
129136 get_target_property (RELEASE_LINK_LIBS ${RELEASE_TARGET} INTERFACE_LINK_LIBRARIES )
130137 get_target_property (DEBUG_LINK_LIBS ${DEBUG_TARGET} INTERFACE_LINK_LIBRARIES )
131- if (SOS_IS_ARM)
138+ if (SOS_IS_ARM)
132139 target_link_libraries (API_release_${SOS_ARCH} PUBLIC StratifyOS_crt_release_${SOS_ARCH} stdc++ supc++ )
133140 target_link_libraries (API_debug_${SOS_ARCH} PUBLIC StratifyOS_crt_debug_${SOS_ARCH} stdc++ supc++ )
134141 message (STATUS "API_release_${SOS_ARCH} -> crt stdc++ supc++" )
135142 message (STATUS "API_debug_${SOS_ARCH} -> crt stdc++ supc++" )
136- foreach (ARCH ${SOS_ARCH_LIST} )
143+ foreach (ARCH ${SOS_ARCH_LIST} )
137144 target_link_libraries (API_release_${ARCH} PUBLIC StratifyOS_crt_release_${ARCH} stdc++ supc++ )
138145 target_link_libraries (API_debug_${ARCH} PUBLIC StratifyOS_crt_debug_${ARCH} stdc++ supc++ )
139146 message (STATUS "API_release_${ARCH} -> crt stdc++ supc++" )
140147 message (STATUS "API_debug_${ARCH} -> crt stdc++ supc++" )
141- endforeach ()
142- endif ()
143- endif ()
148+ endforeach ()
149+ endif ()
150+ endif ()
144151
145152 add_custom_target (
146153 ${NAME} _format
0 commit comments