8bbddf66e9
subrepo: subdir: "deps/clap-juce-extensions/clap-libs/clap" merged: "3189bdfaf" upstream: origin: "https://github.com/free-audio/clap" branch: "main" commit: "3189bdfaf" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596"
65 lines
2.7 KiB
CMake
65 lines
2.7 KiB
CMake
cmake_minimum_required(VERSION 3.17)
|
|
enable_testing()
|
|
project(CLAP C CXX)
|
|
|
|
add_custom_target(clap-tests)
|
|
|
|
# If you use clap as a submodule of your plugin you need some interface projects
|
|
# to allow you to link. clap-core gives you the include directory and clap-plugin-core
|
|
# gives you the core + plugin-glue.
|
|
add_library(clap-core INTERFACE)
|
|
target_include_directories(clap-core INTERFACE include)
|
|
|
|
install(DIRECTORY include DESTINATION "." OPTIONAL EXCLUDE_FROM_ALL)
|
|
|
|
add_executable(clap-compile-c EXCLUDE_FROM_ALL src/main.c)
|
|
|
|
macro(clap_compile_cpp SUFFIX EXT STDC STDCPP)
|
|
add_executable(clap-compile-${SUFFIX} EXCLUDE_FROM_ALL src/main.${EXT})
|
|
target_link_libraries(clap-compile-${SUFFIX} clap-core)
|
|
set_target_properties(clap-compile-${SUFFIX} PROPERTIES
|
|
C_STANDARD ${STDC}
|
|
CXX_STANDARD ${STDCPP})
|
|
add_test(NAME test-clap-compile-${SUFFIX} COMMAND clap-compile-${SUFFIX})
|
|
add_dependencies(clap-tests clap-compile-${SUFFIX})
|
|
|
|
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
|
|
target_compile_options(clap-compile-${SUFFIX} PRIVATE -Wall -Wextra -pedantic)
|
|
endif()
|
|
|
|
if (${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
|
|
target_compile_options(clap-compile-${SUFFIX} PRIVATE -Werror=pragma-pack)
|
|
endif()
|
|
endmacro()
|
|
|
|
clap_compile_cpp(c11 c 11 11)
|
|
clap_compile_cpp(cpp11 cc 11 11)
|
|
clap_compile_cpp(cpp14 cc 11 14)
|
|
clap_compile_cpp(c17 c 17 17)
|
|
clap_compile_cpp(cpp17 cc 17 17)
|
|
clap_compile_cpp(cpp20 cc 17 20)
|
|
|
|
add_library(clap-plugin-template MODULE EXCLUDE_FROM_ALL src/plugin-template.c)
|
|
target_link_libraries(clap-plugin-template PRIVATE clap-core)
|
|
set_target_properties(clap-plugin-template PROPERTIES C_STANDARD 11)
|
|
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
target_link_libraries(clap-plugin-template PRIVATE -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/src/linux-my_plug.version)
|
|
target_link_libraries(clap-plugin-template PRIVATE -Wl,-z,defs)
|
|
set_target_properties(clap-plugin-template PROPERTIES SUFFIX ".clap" PREFIX "")
|
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
|
target_link_options(clap-plugin-template PRIVATE -exported_symbols_list ${CMAKE_CURRENT_SOURCE_DIR}/src/macos-symbols.txt)
|
|
|
|
set_target_properties(clap-plugin-template PROPERTIES
|
|
BUNDLE True
|
|
BUNDLE_EXTENSION clap
|
|
MACOSX_BUNDLE_GUI_IDENTIFIER com.my_company.my_plug
|
|
MACOSX_BUNDLE_BUNDLE_NAME my_plug
|
|
MACOSX_BUNDLE_BUNDLE_VERSION "1"
|
|
MACOSX_BUNDLE_SHORT_VERSION_STRING "1"
|
|
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/src/plugins.plist.in
|
|
)
|
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|
set_target_properties(clap-plugin-template PROPERTIES SUFFIX ".clap" PREFIX "")
|
|
endif()
|