-
Notifications
You must be signed in to change notification settings - Fork 972
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
9 changed files
with
427 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,149 @@ | ||
# Author: Kang Lin <[email protected]> | ||
|
||
cmake_minimum_required(VERSION 3.5) | ||
|
||
project(QtService) | ||
|
||
set(CMAKE_INCLUDE_CURRENT_DIR ON) | ||
#set(CMAKE_CXX_STANDARD 11) | ||
#set(CMAKE_CXX_STANDARD_REQUIRED ON) | ||
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "verbose") | ||
|
||
#打开 qt 编译工具 | ||
SET(CMAKE_AUTOUIC ON) | ||
SET(CMAKE_AUTOMOC ON) | ||
SET(CMAKE_AUTORCC ON) | ||
SET(CMAKE_VERBOSE_MAKEFILE ON) | ||
|
||
#需要的QT组件 | ||
if(CMAKE_VERSION VERSION_LESS "3.7.0") | ||
set(CMAKE_INCLUDE_CURRENT_DIR ON) | ||
endif() | ||
SET(QT_COMPONENTS Widgets) | ||
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core) | ||
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS ${QT_COMPONENTS}) | ||
message("QT_VERSION:${Qt${QT_VERSION_MAJOR}_VERSION}") | ||
if(Qt${QT_VERSION_MAJOR}_VERSION VERSION_LESS 5.10.0 AND ANDROID) | ||
message(FATAL_ERROR "Qt must great 5.10.0") | ||
endif() | ||
if(Qt${QT_VERSION_MAJOR}_FOUND) | ||
FOREACH(_COMPONENT ${QT_COMPONENTS}) | ||
SET(QT_LIBRARIES ${QT_LIBRARIES} Qt${QT_VERSION_MAJOR}::${_COMPONENT}) | ||
ENDFOREACH() | ||
endif() | ||
get_filename_component(QT_INSTALL_DIR "${Qt${QT_VERSION_MAJOR}_DIR}/../../.." ABSOLUTE) | ||
message("QT_INSTALL_DIR:${QT_INSTALL_DIR}") | ||
message("QT_LIBRARIES:${QT_LIBRARIES}") | ||
|
||
if(POLICY CMP0083) | ||
cmake_policy(SET CMP0083 NEW) | ||
endif() | ||
|
||
if(POLICY CMP0020) | ||
cmake_policy(SET CMP0020 NEW) | ||
endif() | ||
|
||
SET(BUILD_VERSION "v0.0.1") | ||
# Find Git Version Patch | ||
IF(EXISTS "${CMAKE_SOURCE_DIR}/.git") | ||
if(NOT GIT) | ||
SET(GIT $ENV{GIT}) | ||
endif() | ||
if(NOT GIT) | ||
FIND_PROGRAM(GIT NAMES git git.exe git.cmd) | ||
endif() | ||
IF(GIT) | ||
EXECUTE_PROCESS( | ||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} | ||
COMMAND ${GIT} describe --tags | ||
OUTPUT_VARIABLE GIT_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE | ||
) | ||
if(NOT GIT_VERSION) | ||
EXECUTE_PROCESS( | ||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} | ||
COMMAND ${GIT} rev-parse --short HEAD | ||
OUTPUT_VARIABLE GIT_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE | ||
) | ||
endif() | ||
SET(BUILD_VERSION ${GIT_VERSION}) | ||
ENDIF() | ||
ENDIF() | ||
message("BUILD_VERSION:${BUILD_VERSION}") | ||
set(VERSION ${BUILD_VERSION}) | ||
|
||
if(NOT DEFINED CMAKE_BUILD_TYPE) | ||
set(CMAKE_BUILD_TYPE "Release") | ||
endif(NOT DEFINED CMAKE_BUILD_TYPE) | ||
string(TOLOWER "${CMAKE_BUILD_TYPE}" build_type) | ||
if("debug" STREQUAL build_type) | ||
add_definitions(-D_DEBUG) | ||
endif() | ||
|
||
IF(MSVC) | ||
# This option is to enable the /MP switch for Visual Studio 2005 and above compilers | ||
OPTION(WIN32_USE_MP "Set to ON to build with the /MP option (Visual Studio 2005 and above)." ON) | ||
MARK_AS_ADVANCED(WIN32_USE_MP) | ||
IF(WIN32_USE_MP) | ||
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") | ||
add_compile_options(/MP) | ||
ENDIF(WIN32_USE_MP) | ||
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>") | ||
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>") | ||
ENDIF(MSVC) | ||
|
||
SET(BUILD_SHARED_LIBS ON CACHE BOOL "Build shared libs") | ||
if (BUILD_SHARED_LIBS) | ||
add_definitions(-DBUILD_SHARED_LIBS) | ||
if (CMAKE_COMPILER_IS_GNUCXX AND NOT MINGW) | ||
# Just setting CMAKE_POSITION_INDEPENDENT_CODE should be enough to set | ||
# -fPIC for GCC but sometimes it still doesn't get set, so make sure it | ||
# does. | ||
add_definitions("-fPIC") | ||
endif() | ||
set(CMAKE_POSITION_INDEPENDENT_CODE ON) | ||
else(BUILD_SHARED_LIBS) | ||
add_definitions(-DQT_STATICPLUGIN) | ||
endif(BUILD_SHARED_LIBS) | ||
|
||
include(CMakePackageConfigHelpers) | ||
include(GNUInstallDirs) | ||
include(GenerateExportHeader) | ||
include(CheckIncludeFile) | ||
include(CheckIncludeFileCXX) | ||
include(CheckFunctionExists) | ||
|
||
#CHECK_INCLUDE_FILE_CXX("string" HAVE_STRING_H) | ||
#check_include_file("math.h" HAVE_MATH_H) | ||
|
||
#check_function_exists("fabs" HAVE_FABS) | ||
|
||
set(BUILD_PLATFORM "${CMAKE_SYSTEM_NAME}") | ||
# ---------------------------------------------------------------------------- | ||
# Detect compiler and target platform architecture | ||
# ---------------------------------------------------------------------------- | ||
if(NOT ANDROID) | ||
if(X86_64 OR CMAKE_SIZEOF_VOID_P EQUAL 8) | ||
set(BUILD_ARCH x86_64) | ||
elseif(X86 OR CMAKE_SIZEOF_VOID_P EQUAL 4) | ||
set(BUILD_ARCH x86) | ||
endif() | ||
else() | ||
set(BUILD_ARCH ${CMAKE_SYSTEM_PROCESSOR}) | ||
endif() | ||
|
||
add_subdirectory(src) | ||
|
||
option(BUILD_EXAMPLES "Build examples" ON) | ||
if(BUILD_EXAMPLES) | ||
add_subdirectory(examples) | ||
endif(BUILD_EXAMPLES) | ||
|
||
# Create will be delete files | ||
CONFIGURE_FILE( | ||
"${CMAKE_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" | ||
"${CMAKE_BINARY_DIR}/cmake_uninstall.cmake" | ||
IMMEDIATE @ONLY) | ||
# Create unistall target | ||
ADD_CUSTOM_TARGET(uninstall | ||
"${CMAKE_COMMAND}" -P "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake" | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
prefix=@CMAKE_INSTALL_PREFIX@ | ||
exec_prefix=@CMAKE_INSTALL_PREFIX@ | ||
libdir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@ | ||
includedir=@CMAKE_INSTALL_PREFIX@/include | ||
|
||
Name: @PROJECT_NAME@ | ||
Description: | ||
Version: @BUILD_VERSION@ | ||
Requires: | ||
Requires.private: | ||
Libs: -L${libdir} -l@PROJECT_NAME@ | ||
Cflags: -I${includedir} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
@PACKAGE_INIT@ | ||
|
||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/") | ||
|
||
include(CMakeFindDependencyMacro) | ||
foreach(dependens_lib @QTSERVICE_DEPENDENS@) | ||
find_dependency(${dependens_lib}) | ||
endforeach() | ||
|
||
include("${CMAKE_CURRENT_LIST_DIR}/@[email protected]") | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
# Author: Kang Lin([email protected]) | ||
|
||
# Use: Please add the follow code to CMakeLists.txt | ||
|
||
# # Install runtime target | ||
# add_custom_target(install-runtime | ||
# COMMAND | ||
# "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=Runtime | ||
# -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake" | ||
# ) | ||
# # Uninstall runtime target | ||
# add_custom_target(uninstall-runtime | ||
# COMMAND | ||
# "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=Runtime | ||
# -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" | ||
# ) | ||
# # Create will be delete files | ||
# CONFIGURE_FILE( | ||
# "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" | ||
# "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake" | ||
# IMMEDIATE @ONLY) | ||
# # Create unistall target | ||
# ADD_CUSTOM_TARGET(uninstall | ||
# "${CMAKE_COMMAND}" -P "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake" | ||
# DEPENDS uninstall-runtime) | ||
|
||
|
||
if(CMAKE_INSTALL_COMPONENT) | ||
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") | ||
else() | ||
set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") | ||
endif() | ||
|
||
IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/${CMAKE_INSTALL_MANIFEST}") | ||
MESSAGE(WARNING "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/${CMAKE_INSTALL_MANIFEST}\"") | ||
ELSE() | ||
|
||
FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/${CMAKE_INSTALL_MANIFEST}" files) | ||
STRING(REGEX REPLACE "\n" ";" files "${files}") | ||
FOREACH(file ${files}) | ||
MESSAGE(STATUS "Uninstalling \"${file}\"") | ||
IF(EXISTS "${file}") | ||
EXEC_PROGRAM( | ||
"@CMAKE_COMMAND@" ARGS "-E remove \"${file}\"" | ||
OUTPUT_VARIABLE rm_out | ||
RETURN_VALUE rm_retval | ||
) | ||
IF("${rm_retval}" STREQUAL 0) | ||
ELSE("${rm_retval}" STREQUAL 0) | ||
MESSAGE(FATAL_ERROR "Problem when removing \"${file}\"") | ||
ENDIF("${rm_retval}" STREQUAL 0) | ||
ELSE(EXISTS "${file}") | ||
MESSAGE(STATUS "File \"${file}\" does not exist.") | ||
ENDIF(EXISTS "${file}") | ||
ENDFOREACH(file) | ||
|
||
ENDIF() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
add_subdirectory(server) | ||
add_subdirectory(controller) | ||
add_subdirectory(interactive) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# Author: Kang Lin <[email protected]> | ||
|
||
project(controller) | ||
|
||
add_executable(${PROJECT_NAME} main.cpp) | ||
target_link_libraries(${PROJECT_NAME} PRIVATE QtService) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# Author: Kang Lin <[email protected]> | ||
|
||
project(interactive) | ||
|
||
#需要的QT组件 | ||
if(CMAKE_VERSION VERSION_LESS "3.7.0") | ||
set(CMAKE_INCLUDE_CURRENT_DIR ON) | ||
endif() | ||
SET(QT_COMPONENTS Core Gui Widgets) | ||
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core) | ||
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS ${QT_COMPONENTS}) | ||
message("QT_VERSION:${Qt${QT_VERSION_MAJOR}_VERSION}") | ||
if(Qt${QT_VERSION_MAJOR}_VERSION VERSION_LESS 5.10.0 AND ANDROID) | ||
message(FATAL_ERROR "Qt must great 5.10.0") | ||
endif() | ||
if(Qt${QT_VERSION_MAJOR}_FOUND) | ||
FOREACH(_COMPONENT ${QT_COMPONENTS}) | ||
SET(QT_LIBRARIES ${QT_LIBRARIES} Qt${QT_VERSION_MAJOR}::${_COMPONENT}) | ||
ENDFOREACH() | ||
endif() | ||
get_filename_component(QT_INSTALL_DIR "${Qt${QT_VERSION_MAJOR}_DIR}/../../.." ABSOLUTE) | ||
message("QT_INSTALL_DIR:${QT_INSTALL_DIR}") | ||
message("QT_LIBRARIES:${QT_LIBRARIES}") | ||
|
||
add_executable(${PROJECT_NAME} main.cpp) | ||
target_link_libraries(${PROJECT_NAME} PRIVATE QtService ${QT_LIBRARIES}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
# Author: Kang Lin <[email protected]> | ||
|
||
project(httpservice) | ||
|
||
#需要的QT组件 | ||
if(CMAKE_VERSION VERSION_LESS "3.7.0") | ||
set(CMAKE_INCLUDE_CURRENT_DIR ON) | ||
endif() | ||
|
||
list(APPEND QT_COMPONENTS Core Network) | ||
if(ANDROID) | ||
SET(QT_COMPONENTS ${QT_COMPONENTS} AndroidExtras) | ||
endif() | ||
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core) | ||
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS ${QT_COMPONENTS}) | ||
message("QT_VERSION:${Qt${QT_VERSION_MAJOR}_VERSION}") | ||
if(Qt${QT_VERSION_MAJOR}_VERSION VERSION_LESS 5.10.0 AND ANDROID) | ||
message(FATAL_ERROR "Qt must great 5.10.0") | ||
endif() | ||
if(Qt${QT_VERSION_MAJOR}_FOUND) | ||
FOREACH(_COMPONENT ${QT_COMPONENTS}) | ||
SET(QT_LIBRARIES ${QT_LIBRARIES} Qt${QT_VERSION_MAJOR}::${_COMPONENT}) | ||
ENDFOREACH() | ||
endif() | ||
get_filename_component(QT_INSTALL_DIR "${Qt${QT_VERSION_MAJOR}_DIR}/../../.." ABSOLUTE) | ||
message("QT_INSTALL_DIR:${QT_INSTALL_DIR}") | ||
message("QT_LIBRARIES:${QT_LIBRARIES}") | ||
|
||
add_executable(${PROJECT_NAME} main.cpp) | ||
|
||
target_link_libraries(${PROJECT_NAME} PRIVATE QtService ${QT_LIBRARIES}) |
Oops, something went wrong.