add_library(projectM_shared SHARED projectM.h ProjectMCWrapper.cpp ProjectMCWrapper.hpp $ $ $ $ $ $ $<$:$> ) target_compile_options(projectM_shared PRIVATE -DprojectM_main_EXPORTS ) set_target_properties(projectM_shared PROPERTIES OUTPUT_NAME projectM VERSION "${PROJECTM_LIB_VERSION}" SOVERSION "${PROJECTM_SO_VERSION}" EXPORT_NAME shared FOLDER libprojectM ) target_include_directories(projectM_shared PUBLIC "$" "$" "$" "$" "$" "$" "$" "$" ) target_link_libraries(projectM_shared PRIVATE GLM::GLM PUBLIC ${PROJECTM_OPENGL_LIBRARIES} ${CMAKE_DL_LIBS} ) if(ENABLE_THREADING) target_link_libraries(projectM_shared PUBLIC Threads::Threads ) endif() if(ENABLE_LLVM) target_link_libraries(projectM_shared PUBLIC LLVM::LLVM ) endif() if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") target_link_libraries(projectM_shared PUBLIC "-framework CoreFoundation" ) endif() enable_target_linker_flags_if_supported(projectM_shared PRIVATE --no-undefined) install(TARGETS projectM_shared EXPORT libprojectMTargets LIBRARY DESTINATION "${PROJECTM_LIB_DIR}" RUNTIME DESTINATION "${PROJECTM_LIB_DIR}" ARCHIVE DESTINATION "${PROJECTM_LIB_DIR}" COMPONENT Runtime ) set(EXPORT_SHARED_LIB_TARGET projectM_shared)