
New behavior broke the AIX bot, so fall back to the old behavior on AIX for now to give time to investigate
74 lines
2.3 KiB
CMake
74 lines
2.3 KiB
CMake
# Needed by LLVM's CMake checks because this file defines multiple targets.
|
|
set(LLVM_OPTIONAL_SOURCES ExportedFuncs.cpp PipSqueak.cpp)
|
|
|
|
set(LLVM_LINK_COMPONENTS Support)
|
|
|
|
add_library(DynamicLibraryLib STATIC
|
|
ExportedFuncs.cpp
|
|
)
|
|
set_target_properties(DynamicLibraryLib PROPERTIES FOLDER "LLVM/Tests/Support")
|
|
|
|
# extract_symbols.py relies on all its library arguments being in the same
|
|
# directory, so we must set the output directory in the same way as if
|
|
# add_llvm_library was used.
|
|
set_output_directory(DynamicLibraryLib
|
|
LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}
|
|
)
|
|
|
|
# FIXME: Find out why AIX fails with new DynamicLibrary symbols behavior.
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "AIX")
|
|
add_llvm_unittest(DynamicLibraryTests
|
|
DynamicLibraryTest.cpp
|
|
)
|
|
else()
|
|
add_llvm_unittest(DynamicLibraryTests
|
|
DynamicLibraryTest.cpp
|
|
|
|
EXPORT_SYMBOLS
|
|
)
|
|
endif()
|
|
target_link_libraries(DynamicLibraryTests PRIVATE DynamicLibraryLib)
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "AIX")
|
|
export_executable_symbols(DynamicLibraryTests)
|
|
endif()
|
|
|
|
function(dynlib_add_module NAME)
|
|
add_library(${NAME} MODULE
|
|
PipSqueak.cpp
|
|
)
|
|
set_target_properties(${NAME} PROPERTIES FOLDER "LLVM/Tests/Support")
|
|
|
|
set_output_directory(${NAME}
|
|
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
|
|
LIBRARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
|
|
)
|
|
|
|
set_target_properties(${NAME}
|
|
PROPERTIES PREFIX ""
|
|
SUFFIX ${LLVM_PLUGIN_EXT}
|
|
)
|
|
|
|
add_dependencies(DynamicLibraryTests ${NAME})
|
|
|
|
if(LLVM_INTEGRATED_CRT_ALLOC)
|
|
# We need to link in the Support lib for the Memory allocator override,
|
|
# otherwise the DynamicLibrary.Shutdown test will fail, because it would
|
|
# allocate memory with the CRT allocator, and release it with our custom
|
|
# allocator (see llvm/lib/Support/Windows/Memory.inc).
|
|
# /INCLUDE:malloc is there to force searching into LLVMSupport before libucrt
|
|
llvm_map_components_to_libnames(llvm_libs Support)
|
|
target_link_libraries(${NAME} ${llvm_libs} "-INCLUDE:malloc")
|
|
endif()
|
|
|
|
endfunction(dynlib_add_module)
|
|
|
|
# Revert -Wl,-z,nodelete on this test since it relies on the file
|
|
# being unloaded.
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
string(REPLACE "-Wl,-z,nodelete" "" CMAKE_MODULE_LINKER_FLAGS
|
|
${CMAKE_MODULE_LINKER_FLAGS})
|
|
endif()
|
|
|
|
dynlib_add_module(PipSqueak)
|
|
dynlib_add_module(SecondLib)
|