84 lines
2.0 KiB
CMake
84 lines
2.0 KiB
CMake
# SPDX-License-Identifier: GPL-3.0-or-later
|
||
# ------------------------------------------------------------
|
||
# 此为新月杀的项目组织文件,采用CMake+QT
|
||
# 2022-01-24 新建文件夹 2023-02-21 发布v0.0.1版本
|
||
# ------------------------------------------------------------
|
||
|
||
cmake_minimum_required(VERSION 3.16)
|
||
|
||
project(FreeKill VERSION 0.4.12)
|
||
add_definitions(-DFK_VERSION=\"${CMAKE_PROJECT_VERSION}\")
|
||
|
||
find_package(Qt6 REQUIRED COMPONENTS
|
||
Network
|
||
)
|
||
|
||
if (NOT DEFINED FK_SERVER_ONLY)
|
||
find_package(Qt6 REQUIRED COMPONENTS
|
||
Gui
|
||
Qml
|
||
Widgets
|
||
Multimedia
|
||
QuickControls2
|
||
LinguistTools
|
||
)
|
||
else ()
|
||
add_definitions(-DFK_SERVER_ONLY)
|
||
endif()
|
||
|
||
find_package(OpenSSL)
|
||
find_package(Lua)
|
||
find_package(SQLite3)
|
||
|
||
set(CMAKE_AUTOMOC ON)
|
||
set(CMAKE_CXX_STANDARD 17)
|
||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||
set(REQUIRED_QT_VERSION "6.4")
|
||
|
||
include_directories(include/lua)
|
||
include_directories(include)
|
||
include_directories(include/libgit2)
|
||
include_directories(src)
|
||
include_directories(src/client)
|
||
include_directories(src/core)
|
||
include_directories(src/network)
|
||
include_directories(src/server)
|
||
include_directories(src/ui)
|
||
|
||
file(GLOB SWIG_FILES "${PROJECT_SOURCE_DIR}/src/swig/*.i")
|
||
if (DEFINED FK_SERVER_ONLY)
|
||
set(SWIG_SOURCE ${PROJECT_SOURCE_DIR}/src/swig/freekill-nogui.i)
|
||
else ()
|
||
set(SWIG_SOURCE ${PROJECT_SOURCE_DIR}/src/swig/freekill.i)
|
||
endif ()
|
||
|
||
add_custom_command(
|
||
OUTPUT ${PROJECT_SOURCE_DIR}/src/swig/freekill-wrap.cxx
|
||
DEPENDS ${SWIG_FILES}
|
||
COMMENT "Generating freekill-wrap.cxx"
|
||
COMMAND swig -c++ -lua -Wall -o
|
||
${PROJECT_SOURCE_DIR}/src/swig/freekill-wrap.cxx
|
||
${SWIG_SOURCE}
|
||
)
|
||
|
||
qt_add_executable(FreeKill)
|
||
|
||
if (NOT DEFINED FK_SERVER_ONLY)
|
||
qt_add_translations(FreeKill
|
||
TS_FILES lang/zh_CN.ts
|
||
QM_FILES_OUTPUT_VARIABLE zh_CN.qm
|
||
|
||
TS_FILES lang/en_US.ts
|
||
QM_FILES_OUTPUT_VARIABLE en_US.qm
|
||
)
|
||
endif()
|
||
|
||
add_custom_command(
|
||
TARGET FreeKill
|
||
POST_BUILD
|
||
COMMENT "Generating version file fk_ver"
|
||
COMMAND echo ${CMAKE_PROJECT_VERSION} > ${PROJECT_SOURCE_DIR}/fk_ver
|
||
)
|
||
|
||
add_subdirectory(src)
|