diff --git a/CMakeLists.txt b/CMakeLists.txt index af0486b9b079b5b3f4c1210e3f252727bd0c26fc..5a61fd269acc4e1ecfece7371dba3f5ccc9ef6a8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,12 @@ cmake_minimum_required(VERSION 3.17) set(LKT_VERSION 2.4) if(CMAKE_BUILD_TYPE STREQUAL "Release") + set(RUST_BUILD_TYPE "release") + set(RUST_BUILD_CMD "${CARGO}" build --release) set(CMAKE_BUILD_TYPE RelWithDebInfo) +else() + set(RUST_BUILD_TYPE "debug") + set(RUST_BUILD_CMD "${CARGO}" build) endif() project(lektor VERSION ${LKT_VERSION} LANGUAGES C CXX) @@ -77,6 +82,7 @@ set(Clang_CXX_FLAGS $<$<COMPILE_LANGUAGE:CXX>:-Wno-inconsistent-missing-override> $<$<COMPILE_LANGUAGE:CXX>:-Wno-suggest-override> $<$<COMPILE_LANGUAGE:CXX>:-Wno-deprecated-declaration> + $<$<COMPILE_LANGUAGE:CXX>:-Wno-missing-prototypes> ) set(GNU_C_FLAGS -fdiagnostics-color=always @@ -89,8 +95,8 @@ set(GNU_C_FLAGS find_library(MPV_LIBRARY mpv REQUIRED) # tested with 0.32.0 find_library(SQLITE3_LIBRARY sqlite3 REQUIRED version>=3.31.0) # tested with 3.34.1 -find_package(SDL2 REQUIRED version>=2.0) # tested with 2.0.14 -find_package(SDL2_image REQUIRED version>=2.0) # same as above ^ +find_package(SDL2 REQUIRED) # tested with 2.0.14 +find_package(SDL2_image REQUIRED) # same as above ^ find_package(CURL REQUIRED HTTP HTTPS) # tested with 7.74.0 find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets REQUIRED) @@ -359,23 +365,25 @@ ExternalProject_Add(amadeus_rs DOWNLOAD_COMMAND "" CONFIGURE_COMMAND "" SOURCE_DIR "${CMAKE_SOURCE_DIR}/src/rust/amadeus-rs" - BUILD_COMMAND "${CARGO}" build - COMMAND "${CARGO}" build - INSTALL_COMMAND "" - BUILD_BYPRODUCTS "${CMAKE_SOURCE_DIR}/src/rust/target/debug/amadeus" + BUILD_COMMAND ${RUST_BUILD_CMD} + COMMAND ${RUST_BUILD_CMD} + BUILD_BYPRODUCTS "${CMAKE_SOURCE_DIR}/src/rust/target/${RUST_BUILD_TYPE}/amadeus" BUILD_ALWAYS 1 BUILD_IN_SOURCE 1 LOG_BUILD 1 + LOG_INSTALL 1 ) +install(PROGRAMS "${CMAKE_SOURCE_DIR}/src/rust/target/${RUST_BUILD_TYPE}/amadeus" TYPE BIN) + ExternalProject_Add(liblektor_rs DOWNLOAD_COMMAND "" CONFIGURE_COMMAND "" SOURCE_DIR "${CMAKE_SOURCE_DIR}/src/rust/liblektor-rs" - BUILD_COMMAND "${CARGO}" build - COMMAND "${CARGO}" build + BUILD_COMMAND ${RUST_BUILD_CMD} + COMMAND ${RUST_BUILD_CMD} INSTALL_COMMAND "" - BUILD_BYPRODUCTS "${CMAKE_SOURCE_DIR}/src/rust/target/debug/liblektor_rs.a" + BUILD_BYPRODUCTS "${CMAKE_SOURCE_DIR}/src/rust/target/${RUST_BUILD_TYPE}/liblektor_rs.a" BUILD_ALWAYS 1 BUILD_IN_SOURCE 1 LOG_BUILD 1 @@ -385,7 +393,7 @@ add_dependencies(lektord liblektor_rs) target_link_libraries(lektord PRIVATE - "${CMAKE_SOURCE_DIR}/src/rust/target/debug/liblektor_rs.a" + "${CMAKE_SOURCE_DIR}/src/rust/target/${RUST_BUILD_TYPE}/liblektor_rs.a" Qt${QT_VERSION_MAJOR}::Widgets )