зеркало из https://github.com/microsoft/STL.git
Don't /LTCG CRT initializers (#2314)
This commit is contained in:
Родитель
84516941d7
Коммит
f89fb6d894
|
@ -266,6 +266,11 @@ set (DLL_SOURCES
|
||||||
${CMAKE_CURRENT_LIST_DIR}/src/instances.cpp
|
${CMAKE_CURRENT_LIST_DIR}/src/instances.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Sources that must not be compiled with /GL, since they contain CRT initializers.
|
||||||
|
set(INITIALIZER_SOURCES
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/src/winapisupp.cpp
|
||||||
|
)
|
||||||
|
|
||||||
set(SOURCES
|
set(SOURCES
|
||||||
${CMAKE_CURRENT_LIST_DIR}/src/StlCompareStringA.cpp
|
${CMAKE_CURRENT_LIST_DIR}/src/StlCompareStringA.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/src/StlCompareStringW.cpp
|
${CMAKE_CURRENT_LIST_DIR}/src/StlCompareStringW.cpp
|
||||||
|
@ -311,7 +316,6 @@ set(SOURCES
|
||||||
${CMAKE_CURRENT_LIST_DIR}/src/wclog.cpp
|
${CMAKE_CURRENT_LIST_DIR}/src/wclog.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/src/wcout.cpp
|
${CMAKE_CURRENT_LIST_DIR}/src/wcout.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/src/winapinls.cpp
|
${CMAKE_CURRENT_LIST_DIR}/src/winapinls.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/src/winapisupp.cpp
|
|
||||||
${CMAKE_CURRENT_LIST_DIR}/src/wiostrea.cpp
|
${CMAKE_CURRENT_LIST_DIR}/src/wiostrea.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/src/wlocale.cpp
|
${CMAKE_CURRENT_LIST_DIR}/src/wlocale.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/src/xalloc.cpp
|
${CMAKE_CURRENT_LIST_DIR}/src/xalloc.cpp
|
||||||
|
@ -443,12 +447,16 @@ function(add_stl_dlls D_SUFFIX THIS_CONFIG_DEFINITIONS THIS_CONFIG_COMPILE_OPTIO
|
||||||
target_compile_definitions(msvcp${D_SUFFIX}_objects PRIVATE "CRTDLL2;_DLL;${THIS_CONFIG_DEFINITIONS}")
|
target_compile_definitions(msvcp${D_SUFFIX}_objects PRIVATE "CRTDLL2;_DLL;${THIS_CONFIG_DEFINITIONS}")
|
||||||
target_compile_options(msvcp${D_SUFFIX}_objects PRIVATE "${THIS_CONFIG_COMPILE_OPTIONS};${GL_FLAG};/EHsc")
|
target_compile_options(msvcp${D_SUFFIX}_objects PRIVATE "${THIS_CONFIG_COMPILE_OPTIONS};${GL_FLAG};/EHsc")
|
||||||
|
|
||||||
|
add_library(msvcp${D_SUFFIX}_init_objects OBJECT ${INITIALIZER_SOURCES})
|
||||||
|
target_compile_definitions(msvcp${D_SUFFIX}_init_objects PRIVATE "CRTDLL2;_DLL;${THIS_CONFIG_DEFINITIONS}")
|
||||||
|
target_compile_options(msvcp${D_SUFFIX}_init_objects PRIVATE "${THIS_CONFIG_COMPILE_OPTIONS};/EHsc")
|
||||||
|
|
||||||
add_library(msvcp${D_SUFFIX}_eha_objects OBJECT ${EHA_SOURCES})
|
add_library(msvcp${D_SUFFIX}_eha_objects OBJECT ${EHA_SOURCES})
|
||||||
target_compile_definitions(msvcp${D_SUFFIX}_eha_objects PRIVATE "CRTDLL2;_DLL;${THIS_CONFIG_DEFINITIONS}")
|
target_compile_definitions(msvcp${D_SUFFIX}_eha_objects PRIVATE "CRTDLL2;_DLL;${THIS_CONFIG_DEFINITIONS}")
|
||||||
target_compile_options(msvcp${D_SUFFIX}_eha_objects PRIVATE "${THIS_CONFIG_COMPILE_OPTIONS};${GL_FLAG};/EHa")
|
target_compile_options(msvcp${D_SUFFIX}_eha_objects PRIVATE "${THIS_CONFIG_COMPILE_OPTIONS};${GL_FLAG};/EHa")
|
||||||
|
|
||||||
add_library(msvcp${D_SUFFIX} SHARED)
|
add_library(msvcp${D_SUFFIX} SHARED)
|
||||||
target_link_libraries(msvcp${D_SUFFIX} PRIVATE msvcp${D_SUFFIX}_eha_objects msvcp${D_SUFFIX}_objects "${TOOLSET_LIB}/vcruntime${D_SUFFIX}.lib" "${TOOLSET_LIB}/msvcrt${D_SUFFIX}.lib" "ucrt${D_SUFFIX}.lib")
|
target_link_libraries(msvcp${D_SUFFIX} PRIVATE msvcp${D_SUFFIX}_eha_objects msvcp${D_SUFFIX}_objects msvcp${D_SUFFIX}_init_objects "${TOOLSET_LIB}/vcruntime${D_SUFFIX}.lib" "${TOOLSET_LIB}/msvcrt${D_SUFFIX}.lib" "ucrt${D_SUFFIX}.lib")
|
||||||
set_target_properties(msvcp${D_SUFFIX} PROPERTIES ARCHIVE_OUTPUT_NAME "msvcp140_base${D_SUFFIX}${VCLIBS_SUFFIX}")
|
set_target_properties(msvcp${D_SUFFIX} PROPERTIES ARCHIVE_OUTPUT_NAME "msvcp140_base${D_SUFFIX}${VCLIBS_SUFFIX}")
|
||||||
set_target_properties(msvcp${D_SUFFIX} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
set_target_properties(msvcp${D_SUFFIX} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
||||||
set_target_properties(msvcp${D_SUFFIX} PROPERTIES OUTPUT_NAME "msvcp140${D_SUFFIX}${VCLIBS_SUFFIX}")
|
set_target_properties(msvcp${D_SUFFIX} PROPERTIES OUTPUT_NAME "msvcp140${D_SUFFIX}${VCLIBS_SUFFIX}")
|
||||||
|
@ -538,7 +546,7 @@ function(add_stl_statics FLAVOR_SUFFIX THIS_CONFIG_DEFINITIONS THIS_CONFIG_COMPI
|
||||||
target_compile_definitions(libcpmt${FLAVOR_SUFFIX}_eha PRIVATE "${THIS_CONFIG_DEFINITIONS}")
|
target_compile_definitions(libcpmt${FLAVOR_SUFFIX}_eha PRIVATE "${THIS_CONFIG_DEFINITIONS}")
|
||||||
target_compile_options(libcpmt${FLAVOR_SUFFIX}_eha PRIVATE "${THIS_CONFIG_COMPILE_OPTIONS};/EHa")
|
target_compile_options(libcpmt${FLAVOR_SUFFIX}_eha PRIVATE "${THIS_CONFIG_COMPILE_OPTIONS};/EHa")
|
||||||
|
|
||||||
add_library(libcpmt${FLAVOR_SUFFIX} STATIC ${HEADERS} ${IMPLIB_SOURCES} ${SOURCES} ${STATIC_SOURCES})
|
add_library(libcpmt${FLAVOR_SUFFIX} STATIC ${HEADERS} ${IMPLIB_SOURCES} ${SOURCES} ${INITIALIZER_SOURCES} ${STATIC_SOURCES})
|
||||||
target_compile_definitions(libcpmt${FLAVOR_SUFFIX} PRIVATE "${THIS_CONFIG_DEFINITIONS}")
|
target_compile_definitions(libcpmt${FLAVOR_SUFFIX} PRIVATE "${THIS_CONFIG_DEFINITIONS}")
|
||||||
target_compile_options(libcpmt${FLAVOR_SUFFIX} PRIVATE "${THIS_CONFIG_COMPILE_OPTIONS};/EHsc")
|
target_compile_options(libcpmt${FLAVOR_SUFFIX} PRIVATE "${THIS_CONFIG_COMPILE_OPTIONS};/EHsc")
|
||||||
target_link_libraries(libcpmt${FLAVOR_SUFFIX} PRIVATE Boost::math libcpmt${FLAVOR_SUFFIX}_eha std_init_once_begin_initialize std_init_once_complete)
|
target_link_libraries(libcpmt${FLAVOR_SUFFIX} PRIVATE Boost::math libcpmt${FLAVOR_SUFFIX}_eha std_init_once_begin_initialize std_init_once_complete)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче