mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-09 00:29:55 -06:00
Since it can be set in the environment when running the test suite, guard tests which are sensitive to intermediate directory strategy changes with explicit settings.
30 lines
1.2 KiB
CMake
30 lines
1.2 KiB
CMake
set(CMAKE_INTERMEDIATE_DIR_STRATEGY FULL CACHE STRING "" FORCE)
|
|
|
|
project(autoexport)
|
|
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${autoexport_BINARY_DIR}/bin)
|
|
add_subdirectory(sub)
|
|
add_library(objlib OBJECT objlib.c)
|
|
set_property(TARGET objlib PROPERTY POSITION_INDEPENDENT_CODE 1)
|
|
add_library(autoexport SHARED hello.cxx world.cxx foo.c $<TARGET_OBJECTS:objlib>)
|
|
add_library(autoexport3 SHARED cppCLI.cxx)
|
|
if(MSVC AND NOT MSVC_VERSION VERSION_LESS 1600
|
|
AND NOT CMAKE_C_COMPILER_ARCHITECTURE_ID STREQUAL "ARM64")
|
|
set_property(TARGET autoexport3 PROPERTY COMMON_LANGUAGE_RUNTIME "")
|
|
endif()
|
|
|
|
add_executable(say say.cxx)
|
|
if(MSVC)
|
|
set_target_properties(say PROPERTIES ENABLE_EXPORTS ON)
|
|
add_library(autoexport_for_exec SHARED hello2.c)
|
|
target_link_libraries(autoexport_for_exec say)
|
|
if(NOT MSVC_VERSION VERSION_LESS 1600 AND
|
|
NOT CMAKE_C_COMPILER_ARCHITECTURE_ID STREQUAL "ARM64")
|
|
enable_language(ASM_MASM)
|
|
target_sources(autoexport PRIVATE nop.asm)
|
|
set_property(SOURCE nop.asm PROPERTY COMPILE_FLAGS /safeseh)
|
|
target_compile_definitions(say PRIVATE HAS_JUSTNOP)
|
|
endif()
|
|
endif()
|
|
target_link_libraries(say autoexport autoexport2 autoexport3)
|