CMakeLists.txt 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # Needed by LLVM's CMake checks because this file defines multiple targets.
  2. set(LLVM_OPTIONAL_SOURCES ExportedFuncs.cpp PipSqueak.cpp)
  3. set(LLVM_LINK_COMPONENTS Support)
  4. add_library(DynamicLibraryLib STATIC
  5. ExportedFuncs.cpp
  6. )
  7. set_target_properties(DynamicLibraryLib PROPERTIES FOLDER "Tests")
  8. # extract_symbols.py relies on all its library arguments being in the same
  9. # directory, so we must set the output directory in the same way as if
  10. # add_llvm_library was used.
  11. set_output_directory(DynamicLibraryLib
  12. LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}
  13. )
  14. add_llvm_unittest(DynamicLibraryTests
  15. DynamicLibraryTest.cpp
  16. )
  17. target_link_libraries(DynamicLibraryTests PRIVATE DynamicLibraryLib)
  18. export_executable_symbols(DynamicLibraryTests)
  19. function(dynlib_add_module NAME)
  20. add_library(${NAME} SHARED
  21. PipSqueak.cpp
  22. )
  23. set_target_properties(${NAME} PROPERTIES FOLDER "Tests")
  24. set_output_directory(${NAME}
  25. BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
  26. LIBRARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
  27. )
  28. set_target_properties(${NAME}
  29. PROPERTIES PREFIX ""
  30. SUFFIX ${LTDL_SHLIB_EXT}
  31. )
  32. add_dependencies(DynamicLibraryTests ${NAME})
  33. endfunction(dynlib_add_module)
  34. # Revert -Wl,-z,nodelete on this test since it relies on the file
  35. # being unloaded.
  36. if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
  37. string(REPLACE "-Wl,-z,nodelete" "" CMAKE_SHARED_LINKER_FLAGS
  38. ${CMAKE_SHARED_LINKER_FLAGS})
  39. endif()
  40. dynlib_add_module(PipSqueak)
  41. dynlib_add_module(SecondLib)