Collection of DPF-based plugins for packaging
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
2.9KB

  1. add_library(projectM_static STATIC
  2. projectM.h
  3. ProjectMCWrapper.cpp
  4. ProjectMCWrapper.hpp
  5. $<TARGET_OBJECTS:projectM_main>
  6. $<TARGET_OBJECTS:MilkdropPresetFactory>
  7. $<TARGET_OBJECTS:NativePresetFactory>
  8. $<TARGET_OBJECTS:Renderer>
  9. $<TARGET_OBJECTS:hlslparser>
  10. $<TARGET_OBJECTS:SOIL2>
  11. $<$<PLATFORM_ID:Windows>:$<TARGET_OBJECTS:dlfcn>>
  12. )
  13. target_compile_options(projectM_static
  14. PUBLIC
  15. -DPROJECTM_STATIC_DEFINE
  16. )
  17. set_target_properties(projectM_static PROPERTIES
  18. OUTPUT_NAME projectM
  19. EXPORT_NAME static
  20. FOLDER libprojectM
  21. )
  22. target_include_directories(projectM_static
  23. PUBLIC
  24. "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include/libprojectM>"
  25. "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
  26. "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Renderer>"
  27. "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Renderer/hlslparser/src>"
  28. "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/MilkdropPresetFactory>"
  29. "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/NativePresetFactory>"
  30. "$<BUILD_INTERFACE:${MSVC_EXTRA_INCLUDE_DIR}>"
  31. "$<INSTALL_INTERFACE:${PROJECTM_INCLUDE_DIR}>"
  32. )
  33. target_link_libraries(projectM_static
  34. PRIVATE
  35. GLM::GLM
  36. PUBLIC
  37. ${PROJECTM_OPENGL_LIBRARIES}
  38. )
  39. if(ENABLE_THREADING)
  40. target_link_libraries(projectM_static
  41. PUBLIC
  42. Threads::Threads
  43. )
  44. endif()
  45. if(ENABLE_LLVM)
  46. target_link_libraries(projectM_static
  47. PUBLIC
  48. LLVM::LLVM
  49. )
  50. endif()
  51. if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
  52. target_link_libraries(projectM_static
  53. PUBLIC
  54. "-framework CoreFoundation"
  55. )
  56. endif()
  57. install(TARGETS projectM_static
  58. EXPORT libprojectMTargets
  59. LIBRARY DESTINATION "${PROJECTM_LIB_DIR}"
  60. RUNTIME DESTINATION "${PROJECTM_LIB_DIR}"
  61. ARCHIVE DESTINATION "${PROJECTM_LIB_DIR}"
  62. COMPONENT Runtime
  63. )
  64. set(EXPORT_SHARED_LIB_TARGET projectM_static)
  65. # pkg-config export, only supports static library on UNIX systems.
  66. if(UNIX)
  67. macro(set_pkg_config_path varname path)
  68. if(IS_ABSOLUTE "${path}")
  69. set(${varname} "${path}")
  70. else()
  71. set(${varname} "\${prefix}/${path}")
  72. endif()
  73. endmacro()
  74. set(PKGCONFIG_PREFIX "${CMAKE_INSTALL_PREFIX}")
  75. set_pkg_config_path(PKGCONFIG_LIB_DIR "${PROJECTM_LIB_DIR}")
  76. set_pkg_config_path(PKGCONFIG_INCLUDE_DIR "${PROJECTM_INCLUDE_DIR}")
  77. set_pkg_config_path(PKGCONFIG_DATADIR_PATH "${PROJECTM_DATADIR_PATH}")
  78. configure_file(libprojectM.pc.cmake.in "${CMAKE_BINARY_DIR}/libprojectM.pc" @ONLY)
  79. install(FILES "${CMAKE_BINARY_DIR}/libprojectM.pc"
  80. DESTINATION "${PROJECTM_LIB_DIR}/pkgconfig"
  81. COMPONENT Devel
  82. )
  83. endif()