1
Fork 0
mirror of https://github.com/redstrate/Astra.git synced 2025-04-20 03:37:47 +00:00
astra/CMakeLists.txt

105 lines
2.7 KiB
Text
Raw Normal View History

2021-11-01 09:54:58 -04:00
cmake_minimum_required(VERSION 3.0)
2022-02-23 19:00:17 -05:00
project(Astra)
2021-11-01 09:54:58 -04:00
set(CMAKE_AUTOMOC ON)
set(CMAKE_CXX_STANDARD 17)
find_package(Qt5 COMPONENTS Core Widgets Network CONFIG REQUIRED)
2021-11-01 09:54:58 -04:00
2022-01-27 09:25:23 -05:00
option(ENABLE_WATCHDOG "Build with Tesseract support (needed for Watchdog)" OFF)
if(ENABLE_WATCHDOG)
find_package(PkgConfig REQUIRED)
pkg_search_module(TESSERACT REQUIRED tesseract)
pkg_search_module(LEPTONICA REQUIRED lept)
endif()
2021-11-01 09:54:58 -04:00
set(SRC
2021-11-01 09:54:58 -04:00
src/main.cpp
src/launchercore.cpp
2022-02-25 20:26:12 -05:00
include/launchercore.h
include/squarelauncher.h
2021-11-01 09:54:58 -04:00
src/sapphirelauncher.cpp
src/squareboot.cpp
2021-11-01 13:14:00 -04:00
src/squarelauncher.cpp
src/settingswindow.cpp
src/blowfish.cpp
src/assetupdater.cpp
2022-02-25 20:26:12 -05:00
include/assetupdater.h
src/launcherwindow.cpp
2022-02-25 20:26:12 -05:00
include/launcherwindow.h
2022-02-23 21:18:53 -05:00
src/gamescopesettingswindow.cpp
2022-02-25 20:26:12 -05:00
include/gamescopesettingswindow.h)
2021-11-01 09:54:58 -04:00
find_package(Qt5Keychain)
if(TARGET Qt5Keychain::Qt5Keychain)
message("Using system library for Qt5 Keychain")
set(LIBRARIES Qt5Keychain::Qt5Keychain ${LIBRARIES})
endif()
find_package(QuaZip-Qt5)
if(TARGET QuaZip::QuaZip)
message("Using system library for Quazip")
set(LIBRARIES QuaZip::QuaZip ${LIBRARIES})
endif()
add_subdirectory(external)
set(LIBRARIES
Qt5::Core Qt5::Widgets Qt5::Network Qt5Keychain::Qt5Keychain ${LIBRARIES})
2022-01-27 09:25:23 -05:00
if(ENABLE_WATCHDOG)
set(LIBRARIES ${LIBRARIES} ${TESSERACT_LIBRARIES} ${LEPTONICA_LIBRARIES})
set(SRC ${SRC}
2022-03-01 16:43:49 -05:00
include/watchdog.h
2022-01-27 09:25:23 -05:00
src/watchdog.cpp
2022-03-01 16:43:49 -05:00
include/gameparser.h
2022-01-27 09:25:23 -05:00
src/gameparser.cpp)
endif()
2022-01-27 09:25:23 -05:00
if(UNIX)
set(LIBRARIES ${LIBRARIES}
X11
Xcomposite
Xrender)
endif()
2022-02-23 19:00:17 -05:00
add_executable(astra ${SRC})
2022-02-23 19:00:17 -05:00
target_link_libraries(astra PUBLIC ${LIBRARIES})
2021-11-01 09:54:58 -04:00
2022-02-25 20:26:12 -05:00
target_include_directories(astra
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include
PRIVATE
2022-03-01 16:43:49 -05:00
${KEYCHAIN_INCLUDE_DIRS}
${QUAZIP_INCLUDE_DIRS})
2021-11-02 08:16:28 -04:00
2022-01-27 09:25:23 -05:00
if(ENABLE_WATCHDOG)
2022-02-23 19:00:17 -05:00
target_include_directories(astra PRIVATE ${TESSERACT_INCLUDE_DIRS} ${LEPTONICA_INCLUDE_DIRS})
2022-01-27 09:25:23 -05:00
2022-02-23 19:00:17 -05:00
target_compile_definitions(astra PRIVATE ENABLE_WATCHDOG)
2022-01-27 09:25:23 -05:00
endif()
2022-02-23 19:00:17 -05:00
install(TARGETS astra
2022-03-01 16:43:49 -05:00
DESTINATION "${INSTALL_BIN_PATH}")
2021-11-02 08:16:28 -04:00
if(WIN32)
2022-03-01 16:43:49 -05:00
get_target_property(QMAKE_EXE Qt5::qmake IMPORTED_LOCATION)
2021-11-02 08:16:28 -04:00
get_filename_component(QT_BIN_DIR "${QMAKE_EXE}" DIRECTORY)
find_program(WINDEPLOYQT_ENV_SETUP qtenv2.bat HINTS "${QT_BIN_DIR}")
find_program(WINDEPLOYQT_EXECUTABLE windeployqt HINTS "${QT_BIN_DIR}")
# Run windeployqt immediately after build
2022-02-23 19:00:17 -05:00
add_custom_command(TARGET astra
2021-11-02 08:16:28 -04:00
POST_BUILD
2022-02-23 19:00:17 -05:00
COMMAND "${WINDEPLOYQT_ENV_SETUP}" && "${WINDEPLOYQT_EXECUTABLE}" \"$<TARGET_FILE:astra>\"
2021-11-02 08:16:28 -04:00
)
2022-01-27 09:25:23 -05:00
endif()