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:
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)