1+ cmake_minimum_required (VERSION 3.21 )
2+ set (CMAKE_CXX_STANDARD 23)
3+ project (Sequence_Runner LANGUAGES CXX )
4+
5+ find_package (Slint QUIET )
6+ if (NOT Slint_FOUND)
7+ include (FetchContent )
8+ FetchContent_Declare (
9+ Slint
10+ GIT_REPOSITORY https://github.com/slint-ui/slint.git
11+ GIT_TAG release/1
12+ SOURCE_SUBDIR api/cpp
13+ )
14+ FetchContent_MakeAvailable (Slint)
15+ endif (NOT Slint_FOUND )
16+
17+ add_executable (Sequence_Runner
18+ src/main.cpp
19+ src/external/tinyfiledialogs.cpp
20+ src/ui/filedialog.cpp
21+ src/ui/uiutils.hpp
22+ src/external/json.hpp
23+ src/files/datahandle.cpp
24+ src/files/data.hpp
25+ src/other/cfg.hpp
26+ src/other/exceptionhandler.hpp
27+ src/runner/sequence_runner.hpp
28+ ui/app.rc
29+ )
30+
31+ set_target_properties (Sequence_Runner PROPERTIES
32+ OUTPUT_NAME "Sequence_Runner"
33+ )
34+
35+ if (CMAKE_BUILD_TYPE STREQUAL "Release" )
36+ set_target_properties (Sequence_Runner PROPERTIES WIN32_EXECUTABLE TRUE )
37+ set_target_properties (Sequence_Runner PROPERTIES LINK_FLAGS "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup" )
38+ endif ()
39+
40+ target_link_libraries (Sequence_Runner PRIVATE Slint::Slint )
41+ slint_target_sources (Sequence_Runner ui/app_window.slint )
42+
43+ target_include_directories (Sequence_Runner PRIVATE
44+ ${CMAKE_CURRENT_SOURCE_DIR} /src
45+ ${CMAKE_CURRENT_SOURCE_DIR} /src/files
46+ ${CMAKE_CURRENT_SOURCE_DIR} /src/ui
47+ ${CMAKE_CURRENT_SOURCE_DIR} /src/external
48+ ${CMAKE_CURRENT_SOURCE_DIR} /src/other
49+ ${CMAKE_CURRENT_SOURCE_DIR} /src/runner
50+ )
51+
52+ add_custom_command (TARGET Sequence_Runner POST_BUILD
53+ COMMAND ${CMAKE_COMMAND} -E copy
54+ $<TARGET_RUNTIME_DLLS :Sequence_Runner >
55+ $<TARGET_FILE_DIR :Sequence_Runner >
56+ COMMAND_EXPAND_LISTS
57+ )
0 commit comments