reapack

Package manager for REAPER
Log | Files | Refs | Submodules | README | LICENSE

commit 0db3ec583922b3524706660464547f343dcdbdcf
parent e53ed0c8b09a11e07b760dd7b5a3983d41621c7e
Author: cfillion <cfillion@users.noreply.github.com>
Date:   Sat,  4 Jan 2020 15:03:25 -0500

minor build script refactoring

Diffstat:
MCMakeLists.txt | 9++-------
Mcmake/FindSWELL.cmake | 2+-
Mcmake/FindWDL.cmake | 4++--
Msrc/CMakeLists.txt | 66++++++++++++++++++++++++++++++------------------------------------
Mtest/CMakeLists.txt | 11++++-------
5 files changed, 39 insertions(+), 53 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.15) if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE) set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" - CACHE STRING "") + CACHE STRING "") endif() if(DEFINED ENV{VCPKG_DEFAULT_TRIPLET} AND NOT DEFINED VCPKG_TARGET_TRIPLET) @@ -123,27 +123,22 @@ if(RUBY_FOUND) endif() add_library(reaper_reapack SHARED) - set_target_properties(reaper_reapack PROPERTIES PREFIX "" # disable the "lib" prefix OUTPUT_NAME "reaper_reapack-${ARCH_NAME}" ) - add_subdirectory(src) -add_subdirectory(test) - target_link_libraries(reaper_reapack reapack) +add_subdirectory(test) add_custom_target(test COMMAND $<TARGET_FILE:tests> WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} USES_TERMINAL ) - add_dependencies(test tests) set(REAPER_USER_PLUGINS "UserPlugins") - install(TARGETS reaper_reapack COMPONENT ReaPack RUNTIME DESTINATION "${REAPER_USER_PLUGINS}" # Windows .dll diff --git a/cmake/FindSWELL.cmake b/cmake/FindSWELL.cmake @@ -1,4 +1,4 @@ -if(WIN32 OR SWELL_FOUND) +if(SWELL_FOUND) return() endif() diff --git a/cmake/FindWDL.cmake b/cmake/FindWDL.cmake @@ -19,8 +19,8 @@ add_library(wdl ${WDL_DIR}/wingui/wndsize.cpp) target_compile_definitions(wdl INTERFACE WDL_NO_DEFINE_MINMAX) target_include_directories(wdl INTERFACE ${WDL_INCLUDE_DIR}) -find_package(SWELL) -if(SWELL_FOUND) +if(NOT WIN32) + find_package(SWELL REQUIRED) target_link_libraries(wdl SWELL::swell) endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt @@ -1,3 +1,27 @@ +find_package(Boost 1.56 REQUIRED) +find_package(CURL REQUIRED) +find_package(MiniZip REQUIRED) +find_package(Threads REQUIRED) +find_package(TinyXML REQUIRED) +find_package(WDL REQUIRED) + +if(NOT APPLE AND NOT WIN32) + find_package(OpenSSL REQUIRED COMPONENTS Crypto) +endif() + +if(NOT WIN32) + find_package(SWELL REQUIRED) +endif() + +if(VCPKG_TOOLCHAIN) + # required for selecting the right debug or release version + find_package(SQLite3 CONFIG REQUIRED) + add_library(SQLite::SQLite3 INTERFACE IMPORTED) + target_link_libraries(SQLite::SQLite3 INTERFACE sqlite3) +else() + find_package(SQLite3 REQUIRED) +endif() + add_library(reapack OBJECT about.cpp action.cpp @@ -40,6 +64,7 @@ add_library(reapack OBJECT remote.cpp report.cpp resource.rc + richedit$<IF:$<BOOL:${APPLE}>,.mm,$<IF:$<BOOL:${WIN32}>,-win32,-gtk>.cpp> serializer.cpp source.cpp string.cpp @@ -53,23 +78,11 @@ add_library(reapack OBJECT win32.cpp ) -if(APPLE) - target_sources(reapack PRIVATE richedit.mm) -elseif(WIN32) - target_sources(reapack PRIVATE richedit-win32.cpp) -else() - target_sources(reapack PRIVATE richedit-gtk.cpp) -endif() - target_compile_features(reapack PUBLIC cxx_std_17) - target_compile_definitions(reapack PRIVATE - REAPACK_FILE="$<TARGET_FILE_NAME:reaper_reapack>" -) - + REAPACK_FILE="$<TARGET_FILE_NAME:reaper_reapack>") target_include_directories(reapack PRIVATE - ${CMAKE_SOURCE_DIR}/vendor ${CMAKE_CURRENT_BINARY_DIR} -) + ${CMAKE_SOURCE_DIR}/vendor ${CMAKE_CURRENT_BINARY_DIR}) if(WIN32) target_compile_options(reapack PUBLIC /W3 /WX /wd4996) @@ -82,39 +95,20 @@ else() ) endif() -find_package(Boost 1.56 REQUIRED) -find_package(CURL REQUIRED) -find_package(MiniZip REQUIRED) -find_package(Threads REQUIRED) -find_package(TinyXML REQUIRED) -find_package(WDL REQUIRED) - target_link_libraries(reapack ${CMAKE_DL_LIBS} Boost::headers CURL::libcurl MiniZip::MiniZip - Threads::Threads TinyXML::TinyXML WDL::WDL + SQLite::SQLite3 Threads::Threads TinyXML::TinyXML WDL::WDL ) -if(VCPKG_TOOLCHAIN) - # for selecting the right debug or release version - find_package(SQLite3 CONFIG REQUIRED) - target_link_libraries(reapack sqlite3) -else() - find_package(SQLite3 REQUIRED) - target_link_libraries(reapack SQLite::SQLite3) -endif() - -if(NOT APPLE AND NOT WIN32) - find_package(OpenSSL REQUIRED COMPONENTS Crypto) +if(OPENSSL_FOUND) target_link_libraries(reapack OpenSSL::Crypto) endif() -find_package(SWELL) if(SWELL_FOUND) target_link_libraries(reapack SWELL::swell) - find_package(PHP REQUIRED) - # Transpile the Win32 resource file + find_package(PHP REQUIRED) add_custom_command( OUTPUT resource.rc_mac_dlg resource.rc_mac_menu COMMAND ${CMAKE_COMMAND} -E copy diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt @@ -1,3 +1,6 @@ +find_package(Catch2 REQUIRED) +mark_as_advanced(Catch2_DIR) + add_executable(tests EXCLUDE_FROM_ALL action.cpp api.cpp @@ -28,12 +31,6 @@ add_executable(tests EXCLUDE_FROM_ALL # std::uncaught_exceptions is unavailable prior to macOS 10.12 target_compile_definitions(tests PRIVATE CATCH_CONFIG_NO_CPP17_UNCAUGHT_EXCEPTIONS) - target_include_directories(tests PRIVATE - ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/vendor -) - -find_package(Catch2 REQUIRED) -mark_as_advanced(Catch2_DIR) - + ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/vendor) target_link_libraries(tests Catch2::Catch2 reapack)