From 3669a5f9a22b7dd8940a1bafcb79b0dd1cc4ca55 Mon Sep 17 00:00:00 2001 From: StoneyDSP Date: Sun, 24 Mar 2024 16:20:49 +0100 Subject: [PATCH] Improved CMake installation --- .gitignore | 4 +- CMakeLists.txt | 143 +++++++++++------- Sources/Biquads.cpp | 4 +- VERSION | 2 +- .../Biquads/StoneyDSPBiquadsConfig.cmake.in | 23 ++- 5 files changed, 110 insertions(+), 66 deletions(-) diff --git a/.gitignore b/.gitignore index 7182e1c..266579b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,7 @@ node_modules !/.vscode/c_cpp_properties.json !**/develop-logo-pluginval.png install -Biquads-v1.2.1 +Installed .bak** # Windows Temp Cache Files @@ -67,7 +67,7 @@ contents.xcworkspacedata .svn enc_temp_folder/ **/Builds/ -# **/JuceLibraryCode/ +**/JuceLibraryCode/ # !**/JuceLibraryCode/AppConfig.h install/testresults.txt **/bin diff --git a/CMakeLists.txt b/CMakeLists.txt index ad4865c..e53673f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,17 +22,22 @@ cmake_minimum_required (VERSION 3.22...3.29 FATAL_ERROR) list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/share/cmake/Modules") if (NOT DEFINED CMAKE_CONFIGURATION_TYPES) - set (CMAKE_CONFIGURATION_TYPES "") + set (CMAKE_CONFIGURATION_TYPES "" CACHE STRING "Specifies the available build types (configurations) on multi-config generators." FORCE) list (APPEND CMAKE_CONFIGURATION_TYPES "Debug" "Release") endif () if (NOT DEFINED CMAKE_BUILD_TYPE) - set (CMAKE_BUILD_TYPE "Debug") + set (CMAKE_BUILD_TYPE "Debug" CACHE STRING "Specifies the build type on single-configuration generators." FORCE) endif () +set_property (CACHE CMAKE_CONFIGURATION_TYPES PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES}) +set_property (CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES}) + include (GetGitRevListCount) get_git_rev_list_count () +set(CPACK_PACKAGE_VENDOR "StoneyDSP") + project (STONEYDSP_BIQUADS VERSION 1.2.3.${_git_rev_list_count} DESCRIPTION "Simple two-pole equalizer with variable oversampling." @@ -63,8 +68,6 @@ option (STONEYDSP_BIQUADS_USING_JUCE_RECOMMENDED_CONFIG_FLAGS "Link with juce::j option (STONEYDSP_BIQUADS_USING_JUCE_RECOMMENDED_LTO_FLAGS "Link with juce::juce_recommended_lto_flags." ON) option (STONEYDSP_BIQUADS_USING_JUCE_RECOMMENDED_WARNING_FLAGS "Link with juce::juce_recommended_warning_flags." ON) -set (STONEYDSP_BIQUADS_TARGETS "") - #[=============================================================================[ # target: StoneyDSP::stoneydsp_core # target: StoneyDSP::stoneydsp_audio @@ -122,16 +125,25 @@ foreach (STONEYDSP_BIQUADS_UNIT_FILE IN LISTS STONEYDSP_BIQUADS_UNIT_FILES) endforeach () endforeach() +set (STONEYDSP_BIQUADS_EXPORT_TARGETS "") + foreach (STONEYDSP_BIQUADS_UNIT_FILE IN LISTS STONEYDSP_BIQUADS_UNIT_FILES) add_library (${STONEYDSP_BIQUADS_UNIT_FILE} INTERFACE) add_library (StoneyDSP::Biquads::${STONEYDSP_BIQUADS_UNIT_FILE} ALIAS ${STONEYDSP_BIQUADS_UNIT_FILE}) - # target_include_directories (${STONEYDSP_BIQUADS_UNIT_FILE} - # INTERFACE - # $ - # $ - # ) + source_group (${STONEYDSP_BIQUADS_UNIT_FILE} + FILES + "${STONEYDSP_BIQUADS_BINARY_DIR}/Biquads_Audio_Plugin_artefacts/Sources/${STONEYDSP_BIQUADS_UNIT_FILE}/${STONEYDSP_BIQUADS_UNIT_FILE}.hpp" + "${STONEYDSP_BIQUADS_BINARY_DIR}/Biquads_Audio_Plugin_artefacts/Sources/${STONEYDSP_BIQUADS_UNIT_FILE}/${STONEYDSP_BIQUADS_UNIT_FILE}.cpp" + "${STONEYDSP_BIQUADS_BINARY_DIR}/Biquads_Audio_Plugin_artefacts/Sources/${STONEYDSP_BIQUADS_UNIT_FILE}/${STONEYDSP_BIQUADS_UNIT_FILE}.mm" + ) + + target_include_directories (${STONEYDSP_BIQUADS_UNIT_FILE} + INTERFACE + $ + $ + ) if (CMAKE_MAJOR_VERSION GREATER_EQUAL 3 AND (CMAKE_MINOR_VERSION LESS 23)) @@ -141,16 +153,9 @@ foreach (STONEYDSP_BIQUADS_UNIT_FILE IN LISTS STONEYDSP_BIQUADS_UNIT_FILES) $ ) - target_sources (${STONEYDSP_BIQUADS_UNIT_FILE} - INTERFACE - $ - $ - ) - else () target_sources (${STONEYDSP_BIQUADS_UNIT_FILE} - INTERFACE FILE_SET biquads_${STONEYDSP_BIQUADS_UNIT_FILE}_HEADERS TYPE HEADERS @@ -162,25 +167,29 @@ foreach (STONEYDSP_BIQUADS_UNIT_FILE IN LISTS STONEYDSP_BIQUADS_UNIT_FILES) $ ) - target_sources (${STONEYDSP_BIQUADS_UNIT_FILE} - - INTERFACE - # FILE_SET biquads_${STONEYDSP_BIQUADS_UNIT_FILE}_SOURCES - # TYPE CXX_MODULES - # BASE_DIRS - # $ - # $ - # FILES - $ - $ - ) endif() + # if (STONEYDSP_BIQUADS_MODULE) + target_sources (${STONEYDSP_BIQUADS_UNIT_FILE} + INTERFACE + $ + $ + ) + # endif () + + target_sources (${STONEYDSP_BIQUADS_UNIT_FILE} + INTERFACE + $ + $ + ) + + list (APPEND STONEYDSP_BIQUADS_EXPORT_TARGETS ${STONEYDSP_BIQUADS_UNIT_FILE}) + endforeach () -# target_link_libraries (Wrapper INTERFACE StoneyDSP::Biquads::Parameters) +target_link_libraries (Wrapper INTERFACE StoneyDSP::Biquads::Parameters) -# target_link_libraries (Processor INTERFACE StoneyDSP::Biquads::Wrapper StoneyDSP::Biquads::Parameters StoneyDSP::Biquads::Editor) +target_link_libraries (Processor INTERFACE StoneyDSP::Biquads::Wrapper StoneyDSP::Biquads::Parameters StoneyDSP::Biquads::Editor) unset (STONEYDSP_BIQUADS_INCLUDEDIR) set (STONEYDSP_BIQUADS_INCLUDEDIR @@ -266,32 +275,6 @@ foreach(STONEYDSP_BIQUADS_STONEYDSP_MODULE_DEPENDENCY IN LISTS STONEYDSP_BIQUADS ) endforeach() -# juce_add_modules( -# INSTALL_PATH "include/StoneyDSP/Biquads" -# ALIAS_NAMESPACE StoneyDSP - -# "${STONEYDSP_BIQUADS_SOURCE_DIR}/Sources/Biquads" -# ) - -# juce_add_modules( -# INSTALL_PATH "include/StoneyDSP/Biquads" -# ALIAS_NAMESPACE StoneyDSP::Biquads - -# "${STONEYDSP_BIQUADS_SOURCE_DIR}/Sources/Parameters" -# "${STONEYDSP_BIQUADS_SOURCE_DIR}/Sources/Wrapper" -# "${STONEYDSP_BIQUADS_SOURCE_DIR}/Sources/Editor" -# "${STONEYDSP_BIQUADS_SOURCE_DIR}/Sources/Processor" -# ) - -# target_link_libraries (Biquads_Audio_Plugin -# PRIVATE -# # StoneyDSP::Biquads -# StoneyDSP::Biquads::Parameters -# StoneyDSP::Biquads::Wrapper -# StoneyDSP::Biquads::Editor -# StoneyDSP::Biquads::Processor -# ) - configure_file ( "Sources/Biquads.hpp" "Biquads_Audio_Plugin_artefacts/Sources/Biquads.hpp" @@ -305,6 +288,13 @@ configure_file ( "Biquads_Audio_Plugin_artefacts/Sources/Biquads.mm" ) +source_group ("Biquads" + FILES + "${STONEYDSP_BIQUADS_BINARY_DIR}/Biquads_Audio_Plugin_artefacts/Sources/Biquads.hpp" + "${STONEYDSP_BIQUADS_BINARY_DIR}/Biquads_Audio_Plugin_artefacts/Sources/Biquads.cpp" + "${STONEYDSP_BIQUADS_BINARY_DIR}/Biquads_Audio_Plugin_artefacts/Sources/Biquads.mm" +) + if (CMAKE_MAJOR_VERSION GREATER_EQUAL 3 AND (CMAKE_MINOR_VERSION LESS 23)) target_include_directories (Biquads_Audio_Plugin @@ -451,6 +441,45 @@ if (STONEYDSP_BIQUADS_BUILD_TESTS AND (STONEYDSP_BIQUADS_SOURCE_DIR STREQUAL CMA add_subdirectory (Testing) endif () +#[=============================================================================[ +# Export configuration +#]=============================================================================] + +export ( + TARGETS ${STONEYDSP_BIQUADS_EXPORT_TARGETS} + NAMESPACE StoneyDSP::Biquads:: + FILE StoneyDSPBiquadsTargets.cmake +) + +foreach (STONEYDSP_BIQUADS_EXPORT_TARGET IN LISTS STONEYDSP_BIQUADS_EXPORT_TARGETS) + if (CMAKE_MAJOR_VERSION GREATER_EQUAL 3 AND (CMAKE_MINOR_VERSION LESS 23)) + install (TARGETS ${STONEYDSP_BIQUADS_EXPORT_TARGET} + EXPORT StoneyDSPBiquadsTargets + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/StoneyDSP/Biquads" + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/StoneyDSP/Biquads/${STONEYDSP_BIQUADS_EXPORT_TARGET}" + ) + else () + install (TARGETS ${STONEYDSP_BIQUADS_EXPORT_TARGET} + EXPORT StoneyDSPBiquadsTargets + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/StoneyDSP/Biquads" + FILE_SET biquads_${STONEYDSP_BIQUADS_EXPORT_TARGET}_HEADERS + ) + endif () +endforeach () + +install( + EXPORT StoneyDSPBiquadsTargets + FILE StoneyDSPBiquadsTargets.cmake + NAMESPACE StoneyDSP::Biquads:: + DESTINATION "lib/cmake/StoneyDSP/Biquads" +) + #[=============================================================================[ # Install & CPack configuration #]=============================================================================] @@ -531,7 +560,7 @@ if(WIN32) endif() include(StoneyDSPBiquadsCPackIgnoreList) # set(CPACK_PACKAGE_CHECKSUM "${PROJECT_VERSION_TWEAK}") # git rev-parse is a good idea for this... -set(CPACK_PACKAGE_VENDOR "StoneyDSP") + set(CPACK_PACKAGE_NAME "StoneyDSP-Biquads-v${STONEYDSP_BIQUADS_VERSION_MAJOR}.${STONEYDSP_BIQUADS_VERSION_MINOR}.${STONEYDSP_BIQUADS_VERSION_PATCH}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}-JUCE-v${JUCE_VERSION}") set(CPACK_PACKAGE_FILE_NAME "StoneyDSP-Biquads-v${STONEYDSP_BIQUADS_VERSION_MAJOR}.${STONEYDSP_BIQUADS_VERSION_MINOR}.${STONEYDSP_BIQUADS_VERSION_PATCH}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}-JUCE-v${JUCE_VERSION}") # Multi-platform CMake API distribution set(CPACK_SOURCE_PACKAGE_FILE_NAME "StoneyDSP-Biquads-v${STONEYDSP_BIQUADS_VERSION_MAJOR}.${STONEYDSP_BIQUADS_VERSION_MINOR}.${STONEYDSP_BIQUADS_VERSION_PATCH}-Source") # No system spec as this is un-compiled source file distribution (i.e., the Javascript API) diff --git a/Sources/Biquads.cpp b/Sources/Biquads.cpp index e82b1e0..349a52c 100644 --- a/Sources/Biquads.cpp +++ b/Sources/Biquads.cpp @@ -38,8 +38,8 @@ namespace ProjectInfo { extern const char* const projectName = "Biquads"; extern const char* const companyName = "StoneyDSP"; - extern const char* const versionString = "1.2.2.174"; - extern const int versionNumber = 0x10202ae; + extern const char* const versionString = "1.2.3.167"; + extern const int versionNumber = 0x10203a7; } /// @} group Biquads diff --git a/VERSION b/VERSION index fbc1577..edcaa39 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.2.3.165 +1.2.3.167 diff --git a/share/StoneyDSP/Biquads/StoneyDSPBiquadsConfig.cmake.in b/share/StoneyDSP/Biquads/StoneyDSPBiquadsConfig.cmake.in index 4d6c994..88b97f6 100644 --- a/share/StoneyDSP/Biquads/StoneyDSPBiquadsConfig.cmake.in +++ b/share/StoneyDSP/Biquads/StoneyDSPBiquadsConfig.cmake.in @@ -153,6 +153,13 @@ configure_file ( "Biquads_Audio_Plugin_artefacts/Sources/Biquads.mm" ) +source_group ("Biquads" + FILES + "${STONEYDSP_BIQUADS_BINARY_DIR}/Biquads_Audio_Plugin_artefacts/Sources/Biquads.hpp" + "${STONEYDSP_BIQUADS_BINARY_DIR}/Biquads_Audio_Plugin_artefacts/Sources/Biquads.cpp" + "${STONEYDSP_BIQUADS_BINARY_DIR}/Biquads_Audio_Plugin_artefacts/Sources/Biquads.mm" +) + if (CMAKE_MAJOR_VERSION GREATER_EQUAL 3 AND (CMAKE_MINOR_VERSION LESS 23)) target_include_directories (Biquads_Audio_Plugin @@ -172,13 +179,21 @@ else () $ $ FILES - $ - $ + $ + $ ) endif() target_sources (Biquads_Audio_Plugin PRIVATE - $ - $ + $ + $ +) + +target_link_libraries (Biquads_Audio_Plugin + PRIVATE + StoneyDSP::Biquads::Parameters + StoneyDSP::Biquads::Wrapper + StoneyDSP::Biquads::Editor + StoneyDSP::Biquads::Processor )