Maraiah/CMakeLists.txt

92 lines
2.0 KiB
CMake
Raw Normal View History

2019-05-15 12:54:35 -07:00
cmake_minimum_required(VERSION 3.14)
project(maraiah-tycho CXX)
2019-06-08 20:43:33 -07:00
include(FeatureSummary)
2019-05-15 12:54:35 -07:00
set(CMAKE_AUTOMOC ON)
2019-05-30 00:09:58 -07:00
set(CMAKE_AUTORCC ON)
2019-05-15 12:54:35 -07:00
set(CMAKE_AUTOUIC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
2019-05-16 00:20:47 -07:00
set(CMAKE_CXX_FLAGS_DEBUGOPT "-O2 -g")
2019-06-08 20:43:33 -07:00
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DQT_QML_DEBUG")
set(THREADS_PREFER_PTHREAD_FLAG ON)
set(CARGO_FLAGS)
if(CMAKE_BUILD_TYPE STREQUAL Release)
set(RUST_TARGET_DIR "release")
set(CARGO_FLAGS "${CARGO_FLAGS} --release")
else()
set(RUST_TARGET_DIR "debug")
endif()
set(CARGO_TARGET_DIR "${CMAKE_BINARY_DIR}/rust")
set(RUST_LIB "${CARGO_TARGET_DIR}/${RUST_TARGET_DIR}/libtycho.a")
2019-05-16 00:20:47 -07:00
2019-05-15 12:54:35 -07:00
find_package(Threads REQUIRED)
2019-06-08 20:43:33 -07:00
find_package(Qt5 5.6.0 CONFIG REQUIRED COMPONENTS Core Widgets)
2019-05-15 12:54:35 -07:00
2019-06-08 20:43:33 -07:00
feature_summary(
WHAT
ALL
INCLUDE_QUIET_PACKAGES
FATAL_ON_MISSING_REQUIRED_PACKAGES
)
add_custom_command(
OUTPUT "${RUST_LIB}"
COMMAND env CARGO_TARGET_DIR="${CARGO_TARGET_DIR}" cargo build -p maraiah-tycho ${CARGO_FLAGS}
2019-05-15 12:54:35 -07:00
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
COMMENT "Building Rust library"
)
2019-06-08 20:43:33 -07:00
add_custom_target(
test
COMMAND env CARGO_TARGET_DIR="${CARGO_TARGET_DIR}" cargo test
DEPENDS "${RUST_LIB}"
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
)
add_custom_target(maraiah-tycho-rust DEPENDS "${RUST_LIB}")
add_executable(
maraiah-tycho
WIN32
2019-06-08 20:43:33 -07:00
source/tycho/headers/mapprops.h
source/tycho/headers/menu.h
source/tycho/headers/tycho.h
source/tycho/resources/resources.qrc
source/tycho/source/main.cc
source/tycho/source/mapprops.cc
source/tycho/source/menu.cc
source/tycho/ui/about.ui
source/tycho/ui/mapprops.ui
source/tycho/ui/mapview.ui
source/tycho/ui/menu.ui
source/tycho/ui/points.ui
)
2019-05-15 12:54:35 -07:00
set_target_properties(
maraiah-tycho
PROPERTIES
CXX_STANDARD 17
CXX_STANDARD_REQUIRED ON
)
2019-06-08 20:43:33 -07:00
target_include_directories(maraiah-tycho PUBLIC source/tycho/headers)
add_dependencies(maraiah-tycho maraiah-tycho-rust)
2019-05-15 12:54:35 -07:00
target_link_libraries(
maraiah-tycho
2019-06-08 20:43:33 -07:00
"${RUST_LIB}"
2019-05-15 12:54:35 -07:00
Threads::Threads
${CMAKE_DL_LIBS}
2019-06-08 20:43:33 -07:00
Qt5::Core
2019-05-15 12:54:35 -07:00
Qt5::Widgets
)
## EOF