2025-06-17 12:00:46 +08:00
|
|
|
cmake_minimum_required(VERSION 3.16)
|
2025-06-13 23:14:57 +08:00
|
|
|
|
2025-06-26 22:09:04 +08:00
|
|
|
project(frelay VERSION 0.2 LANGUAGES CXX)
|
2025-06-13 23:14:57 +08:00
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
|
|
2025-06-18 08:49:29 +08:00
|
|
|
set(PROJECT_URL "https://github.com/taynpg/frelay")
|
2025-06-26 22:59:58 +08:00
|
|
|
|
|
|
|
|
if(NOT DEFINED QT_DEFAULT_MAJOR_VERSION)
|
|
|
|
|
set(QT_DEFAULT_MAJOR_VERSION 6)
|
|
|
|
|
endif()
|
|
|
|
|
|
2025-06-21 12:08:01 +08:00
|
|
|
set(QAPPLICATION_CLASS QApplication)
|
2025-06-18 08:49:29 +08:00
|
|
|
|
2025-06-13 23:14:57 +08:00
|
|
|
if (MSVC)
|
|
|
|
|
add_compile_options(/utf-8)
|
|
|
|
|
endif()
|
|
|
|
|
|
2025-06-20 16:20:34 +08:00
|
|
|
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_SYSTEM_NAME MATCHES "Windows")
|
|
|
|
|
message(STATUS "frelay use MINGW compiler.")
|
|
|
|
|
set(COMPILER_USE_MINGW ON)
|
|
|
|
|
add_definitions(-DCOMPILER_USE_MINGW)
|
|
|
|
|
endif()
|
|
|
|
|
|
2025-06-13 23:14:57 +08:00
|
|
|
if(WIN32)
|
2025-06-25 10:54:04 +08:00
|
|
|
if(DEFINED XP_PLATFORM_SUPPORT)
|
2025-06-26 22:59:58 +08:00
|
|
|
message(STATUS "Support Windows XP platform => ${XP_PLATFORM_SUPPORT}.")
|
|
|
|
|
include_directories(${CMAKE_SOURCE_DIR}/Gui/Control)
|
2025-06-25 10:54:04 +08:00
|
|
|
add_definitions(-D_WIN32_WINNT=0x0501)
|
2025-06-13 23:14:57 +08:00
|
|
|
else()
|
2025-06-25 10:54:04 +08:00
|
|
|
add_definitions(-D_WIN32_WINNT=0x0601)
|
2025-06-13 23:14:57 +08:00
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
set(CMAKE_DEBUG_POSTFIX "d")
|
|
|
|
|
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE})
|
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE}/)
|
2025-06-18 08:49:29 +08:00
|
|
|
include_directories(${PROJECT_BINARY_DIR})
|
2025-06-13 23:14:57 +08:00
|
|
|
|
2025-06-14 23:25:16 +08:00
|
|
|
add_definitions(-DFMT_HEADER_ONLY)
|
|
|
|
|
include_directories(3rd)
|
2025-06-21 12:08:01 +08:00
|
|
|
add_subdirectory(3rd/SingleApplication-3.5.2)
|
2025-06-25 10:54:04 +08:00
|
|
|
|
|
|
|
|
if(NOT DEFINED COMPILER_USE_MINGW)
|
2025-06-20 10:33:03 +08:00
|
|
|
add_subdirectory(crashelper)
|
2025-06-25 10:54:04 +08:00
|
|
|
endif()
|
|
|
|
|
|
2025-06-13 23:14:57 +08:00
|
|
|
add_subdirectory(Protocol)
|
2025-06-14 09:27:50 +08:00
|
|
|
add_subdirectory(Server)
|
2025-06-14 23:25:16 +08:00
|
|
|
add_subdirectory(ClientCore)
|
|
|
|
|
add_subdirectory(Util)
|
2025-06-29 12:14:14 +08:00
|
|
|
if(DEFINED COMPILE_GUI)
|
2025-06-15 14:31:54 +08:00
|
|
|
add_subdirectory(Gui)
|
2025-06-29 12:14:14 +08:00
|
|
|
endif()
|
2025-06-17 12:00:46 +08:00
|
|
|
add_subdirectory(Console)
|
2025-06-15 14:31:54 +08:00
|
|
|
add_subdirectory(Struct)
|
2025-06-13 23:14:57 +08:00
|
|
|
add_subdirectory(Test)
|
2025-06-18 08:49:29 +08:00
|
|
|
|
|
|
|
|
execute_process(
|
|
|
|
|
COMMAND git rev-parse --short HEAD
|
|
|
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
|
|
|
OUTPUT_VARIABLE VERSION_GIT_HASH
|
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
|
|
|
)
|
|
|
|
|
execute_process(
|
|
|
|
|
COMMAND git rev-parse --abbrev-ref HEAD
|
|
|
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
|
|
|
OUTPUT_VARIABLE VERSION_GIT_BRANCH
|
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
|
|
|
)
|
|
|
|
|
configure_file(version.h.in fversion.h)
|
|
|
|
|
message(STATUS "${CMAKE_SYSTEM_NAME} build dir:${PROJECT_BINARY_DIR}")
|
|
|
|
|
message(STATUS "VERSION_GIT_BRANCH: ${VERSION_GIT_BRANCH}")
|
2025-06-21 12:08:01 +08:00
|
|
|
message(STATUS "VERSION_GIT_HASH: ${VERSION_GIT_HASH}")
|