Commit 4bad61b3 by xiaojing.zhang

Cmake 优化

parent 795c1951
cmake_minimum_required(VERSION 3.1.0) cmake_minimum_required(VERSION 3.1.0)
MESSAGE(STATUS "Project Directory: ${PROJECT_SOURCE_DIR}")
project(freemudPOS) project(freemudPOS)
SET(TARGET_NAME freemudPOS) SET(TARGET_NAME freemudPOS)
set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON) set(CMAKE_AUTORCC ON)
ADD_DEFINITIONS(-DUNICODE) ADD_DEFINITIONS(-DUNICODE)
set( CMAKE_BUILD_TYPE Debug ) set( CMAKE_BUILD_TYPE Debug )
IF(CMAKE_BUILD_TYPE MATCHES "Debug") IF(CMAKE_BUILD_TYPE MATCHES "Debug")
message("debug mode ") message("debug mode ")
set(QTSERVICE QtSolutions_Service-headd) set(QTSERVICE QtSolutions_Service-headd)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../debug/bins) set(EXECUTABLE_OUTPUT_PATH ${fmPOS_SOURCE_DIR}/debug/bins)
ELSEIF(CMAKE_BUILD_TYPE MATCHES "Release") ELSEIF(CMAKE_BUILD_TYPE MATCHES "Release")
set(QTSERVICE QtSolutions_Service-head) set(QTSERVICE QtSolutions_Service-head)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../Release/bins) set(EXECUTABLE_OUTPUT_PATH ${fmPOS_SOURCE_DIR}/Release/bins)
ENDIF() ENDIF()
find_package(Qt5 COMPONENTS Widgets Gui Core Sql Network REQUIRED) find_package(Qt5 COMPONENTS Widgets Gui Core Sql Network REQUIRED)
aux_source_directory( ./ DIR_SRCS) aux_source_directory( ./ DIR_SRCS)
set(MOC_SRCS set(MOC_SRCS ${fmPOS_SOURCE_DIR}/include/application/fm_singleton.h)
../include/application/fm_singleton.h
)
qt5_wrap_cpp( MOC ${MOC_SRCS}) qt5_wrap_cpp( MOC ${MOC_SRCS})
set(RC res/FreemudPOS.rc) set(RC res/FreemudPOS.rc)
INCLUDE_DIRECTORIES(../include/interface) INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/include/interface)
INCLUDE_DIRECTORIES(../include/ctk) INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/include/ctk)
INCLUDE_DIRECTORIES(../include/application) INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/include/application)
INCLUDE_DIRECTORIES(qtservice/src) INCLUDE_DIRECTORIES(qtservice/src)
link_directories(../lib) link_directories(${fmPOS_SOURCE_DIR}/lib)
link_libraries(${QTSERVICE} ) link_libraries(${QTSERVICE} )
add_executable (${TARGET_NAME} ${MOC_SRCS} ${DIR_SRCS} ${RC}) add_executable (${TARGET_NAME} ${DIR_SRCS} ${RC} ${MOC})
target_link_libraries(${TARGET_NAME} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::Sql) target_link_libraries(${TARGET_NAME} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::Sql)
......
...@@ -7,12 +7,30 @@ set(CMAKE_AUTOMOC ON) ...@@ -7,12 +7,30 @@ set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON) set(CMAKE_AUTORCC ON)
#通过批处理文件获取版本和资源文件需要的一些信息 set( CMAKE_BUILD_TYPE Debug )
find_path(BATPATH fmprc_cmake.bat PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../)
MESSAGE(bat path is ${BATPATH}) find_package(Qt5 COMPONENTS Gui Concurrent REQUIRED)
IF(CMAKE_BUILD_TYPE MATCHES "Debug")
message("debug mode ")
set(CTKCORE CTKCored.lib)
set(CTKPLUG CTKPluginFrameworkd.lib)
set(LOG4 log4cxxd)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${fmPOS_SOURCE_DIR}/debug/plugins)
ELSEIF(CMAKE_BUILD_TYPE MATCHES "Release")
set(CTKCORE CTKCore.lib)
set(CTKPLUG CTKPluginFramework.lib)
set(LOG4 log4cxx)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${fmPOS_SOURCE_DIR}/Release/plugins)
ENDIF()
set(ORIGIN_TARGET ${TARGET_NAME}) set(ORIGIN_TARGET ${TARGET_NAME})
set(ABSPATH ${BATPATH}/fmprc_cmake.bat)
execute_process(COMMAND ${ABSPATH} ${TARGET_NAME} OUTPUT_VARIABLE VER ) #通过批处理文件获取版本和资源文件需要的一些信息
message(STATUS "The bat : ${ORIGIN_TARGET}")
set(ABSPATH ${fmPOS_SOURCE_DIR}/fmprc_cmake.bat)
message(STATUS "The bat : ${ABSPATH}")
execute_process(COMMAND ${ABSPATH} ${TARGET_NAME} WORKING_DIRECTORY ${fmPOS_SOURCE_DIR} OUTPUT_VARIABLE VER )
string(REGEX REPLACE "\r|\n" " " VERTEMP ${VER}) string(REGEX REPLACE "\r|\n" " " VERTEMP ${VER})
string(STRIP ${VERTEMP} SEXY_STRING) string(STRIP ${VERTEMP} SEXY_STRING)
string(REPLACE " " ";" SEXY_LIST ${SEXY_STRING}) string(REPLACE " " ";" SEXY_LIST ${SEXY_STRING})
...@@ -51,41 +69,28 @@ configure_file( ...@@ -51,41 +69,28 @@ configure_file(
configure_file("${PROJECT_SOURCE_DIR}/../pluginrc.h" "${PROJECT_SOURCE_DIR}/res/resource.h" COPYONLY) configure_file("${PROJECT_SOURCE_DIR}/../pluginrc.h" "${PROJECT_SOURCE_DIR}/res/resource.h" COPYONLY)
configure_file("${PROJECT_SOURCE_DIR}/../pluginrc.rc" "${PROJECT_SOURCE_DIR}/res/${ORIGIN_TARGET}.rc" COPYONLY) configure_file("${PROJECT_SOURCE_DIR}/../pluginrc.rc" "${PROJECT_SOURCE_DIR}/res/${ORIGIN_TARGET}.rc" COPYONLY)
#编译及相关信息配置 file(GLOB DIR_SRCS
set( CMAKE_BUILD_TYPE Debug ) "*.h"
find_package(Qt5 COMPONENTS Gui Concurrent REQUIRED) "*.cpp"
)
IF(CMAKE_BUILD_TYPE MATCHES "Debug")
message("debug mode ")
set(CTKCORE CTKCored)
set(CTKPLUG CTKPluginFrameworkd)
set(LOG4 log4cxxd)
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../debug/plugins)
ELSEIF(CMAKE_BUILD_TYPE MATCHES "Release")
set(CTKCORE CTKCore)
set(CTKPLUG CTKPluginFramework)
set(LOG4 log4cxx)
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../Release/plugins)
ENDIF()
aux_source_directory(../fmp_logger/ DIR_SRCS)
set(RCC_SCRS res/fmp_logger.qrc
)
qt5_add_resources(RCC ${RCC_SCRS})
INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/include/ctk)
INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/include/interface)
INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/include/log4cxx)
INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/include/common)
INCLUDE_DIRECTORIES(../include/ctk) link_directories(${fmPOS_SOURCE_DIR}/lib)
INCLUDE_DIRECTORIES(../include/interface)
INCLUDE_DIRECTORIES(../include/log4cxx)
INCLUDE_DIRECTORIES(../include/common)
link_directories(${BATPATH}/lib)
link_libraries(${CTKCORE} ${CTKPLUG} ${LOG4})
ADD_LIBRARY (${TARGET_NAME} SHARED ${DIR_SRCS} ${RCC_SCRS} res/fmp_logger.rc) ADD_LIBRARY (${TARGET_NAME} SHARED ${DIR_SRCS} res/fmp_logger.qrc res/fmp_logger.rc )
target_link_libraries(${TARGET_NAME}
Qt5::Core
Qt5::Concurrent
${CTKCORE}
${CTKPLUG}
${LOG4})
target_link_libraries(${TARGET_NAME} Qt5::Core Qt5::Concurrent)
......
...@@ -7,12 +7,28 @@ set(CMAKE_AUTOMOC ON) ...@@ -7,12 +7,28 @@ set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON) set(CMAKE_AUTORCC ON)
#通过批处理文件获取版本和资源文件需要的一些信息 set( CMAKE_BUILD_TYPE Debug )
find_path(BATPATH fmprc_cmake.bat PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../)
MESSAGE(bat path is ${BATPATH}) find_package(Qt5 COMPONENTS Gui Core REQUIRED)
IF(CMAKE_BUILD_TYPE MATCHES "Debug")
message("debug mode ")
set(CTKCORE CTKCored.lib)
set(CTKPLUG CTKPluginFrameworkd.lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${fmPOS_SOURCE_DIR}/debug/plugins)
ELSEIF(CMAKE_BUILD_TYPE MATCHES "Release")
set(CTKCORE CTKCore.lib)
set(CTKPLUG CTKPluginFramework.lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${fmPOS_SOURCE_DIR}/Release/plugins)
ENDIF()
set(ORIGIN_TARGET ${TARGET_NAME}) set(ORIGIN_TARGET ${TARGET_NAME})
set(ABSPATH ${BATPATH}/fmprc_cmake.bat)
execute_process(COMMAND ${ABSPATH} ${TARGET_NAME} OUTPUT_VARIABLE VER ) #通过批处理文件获取版本和资源文件需要的一些信息
message(STATUS "The bat : ${ORIGIN_TARGET}")
set(ABSPATH ${fmPOS_SOURCE_DIR}/fmprc_cmake.bat)
message(STATUS "The bat : ${ABSPATH}")
execute_process(COMMAND ${ABSPATH} ${TARGET_NAME} WORKING_DIRECTORY ${fmPOS_SOURCE_DIR} OUTPUT_VARIABLE VER )
string(REGEX REPLACE "\r|\n" " " VERTEMP ${VER}) string(REGEX REPLACE "\r|\n" " " VERTEMP ${VER})
string(STRIP ${VERTEMP} SEXY_STRING) string(STRIP ${VERTEMP} SEXY_STRING)
string(REPLACE " " ";" SEXY_LIST ${SEXY_STRING}) string(REPLACE " " ";" SEXY_LIST ${SEXY_STRING})
...@@ -51,41 +67,27 @@ configure_file( ...@@ -51,41 +67,27 @@ configure_file(
configure_file("${PROJECT_SOURCE_DIR}/../pluginrc.h" "${PROJECT_SOURCE_DIR}/res/resource.h" COPYONLY) configure_file("${PROJECT_SOURCE_DIR}/../pluginrc.h" "${PROJECT_SOURCE_DIR}/res/resource.h" COPYONLY)
configure_file("${PROJECT_SOURCE_DIR}/../pluginrc.rc" "${PROJECT_SOURCE_DIR}/res/${ORIGIN_TARGET}.rc" COPYONLY) configure_file("${PROJECT_SOURCE_DIR}/../pluginrc.rc" "${PROJECT_SOURCE_DIR}/res/${ORIGIN_TARGET}.rc" COPYONLY)
#编译及相关信息配置 file(GLOB DIR_SRCS
set( CMAKE_BUILD_TYPE Debug ) "*.h"
find_package(Qt5 COMPONENTS Gui Core REQUIRED) "*.cpp"
)
IF(CMAKE_BUILD_TYPE MATCHES "Debug")
message("debug mode ")
set(CTKCORE CTKCored)
set(CTKPLUG CTKPluginFrameworkd)
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../debug/plugins)
ELSEIF(CMAKE_BUILD_TYPE MATCHES "Release")
set(CTKCORE CTKCore)
set(CTKPLUG CTKPluginFramework)
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../Release/plugins)
ENDIF()
set(RCC_SCRS res/fmp_manager.qrc
)
qt5_add_resources(RCC ${RCC_SCRS})
aux_source_directory(../fmp_manager/ DIR_SRCS)
INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/include/ctk)
INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/include/interface)
link_directories(${fmPOS_SOURCE_DIR}/lib)
INCLUDE_DIRECTORIES(../include/ctk)
INCLUDE_DIRECTORIES(../include/interface)
link_directories(${BATPATH}/lib) ADD_LIBRARY (${TARGET_NAME} SHARED ${DIR_SRCS} res/fmp_manager.qrc res/fmp_manager.rc )
link_libraries(${CTKCORE} ${CTKPLUG})
target_link_libraries(${TARGET_NAME}
Qt5::Core
Qt5::Gui
${CTKCORE}
${CTKPLUG})
ADD_LIBRARY (${TARGET_NAME} SHARED ${DIR_SRCS} ${RCC_SCRS} res/fmp_manager.rc )
target_link_libraries(${TARGET_NAME} Qt5::Gui Qt5::Core)
......
...@@ -8,12 +8,28 @@ set(CMAKE_AUTOUIC ON) ...@@ -8,12 +8,28 @@ set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON) set(CMAKE_AUTORCC ON)
#通过批处理文件获取版本和资源文件需要的一些信息 set( CMAKE_BUILD_TYPE Debug )
find_path(BATPATH fmprc_cmake.bat PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../)
MESSAGE(bat path is ${BATPATH}) find_package(Qt5 COMPONENTS Gui Core Network REQUIRED)
IF(CMAKE_BUILD_TYPE MATCHES "Debug")
message("debug mode ")
set(CTKCORE CTKCored.lib)
set(CTKPLUG CTKPluginFrameworkd.lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${fmPOS_SOURCE_DIR}/debug/plugins)
ELSEIF(CMAKE_BUILD_TYPE MATCHES "Release")
set(CTKCORE CTKCore.lib)
set(CTKPLUG CTKPluginFramework.lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${fmPOS_SOURCE_DIR}/Release/plugins)
ENDIF()
set(ORIGIN_TARGET ${TARGET_NAME}) set(ORIGIN_TARGET ${TARGET_NAME})
set(ABSPATH ${BATPATH}/fmprc_cmake.bat)
execute_process(COMMAND ${ABSPATH} ${TARGET_NAME} OUTPUT_VARIABLE VER ) #通过批处理文件获取版本和资源文件需要的一些信息
message(STATUS "The bat : ${ORIGIN_TARGET}")
set(ABSPATH ${fmPOS_SOURCE_DIR}/fmprc_cmake.bat)
message(STATUS "The bat : ${ABSPATH}")
execute_process(COMMAND ${ABSPATH} ${TARGET_NAME} WORKING_DIRECTORY ${fmPOS_SOURCE_DIR} OUTPUT_VARIABLE VER )
string(REGEX REPLACE "\r|\n" " " VERTEMP ${VER}) string(REGEX REPLACE "\r|\n" " " VERTEMP ${VER})
string(STRIP ${VERTEMP} SEXY_STRING) string(STRIP ${VERTEMP} SEXY_STRING)
string(REPLACE " " ";" SEXY_LIST ${SEXY_STRING}) string(REPLACE " " ";" SEXY_LIST ${SEXY_STRING})
...@@ -52,35 +68,26 @@ configure_file( ...@@ -52,35 +68,26 @@ configure_file(
configure_file("${PROJECT_SOURCE_DIR}/../pluginrc.h" "${PROJECT_SOURCE_DIR}/res/resource.h" COPYONLY) configure_file("${PROJECT_SOURCE_DIR}/../pluginrc.h" "${PROJECT_SOURCE_DIR}/res/resource.h" COPYONLY)
configure_file("${PROJECT_SOURCE_DIR}/../pluginrc.rc" "${PROJECT_SOURCE_DIR}/res/${ORIGIN_TARGET}.rc" COPYONLY) configure_file("${PROJECT_SOURCE_DIR}/../pluginrc.rc" "${PROJECT_SOURCE_DIR}/res/${ORIGIN_TARGET}.rc" COPYONLY)
#编译及相关信息配置 file(GLOB DIR_SRCS
set( CMAKE_BUILD_TYPE Debug ) "*.h"
find_package(Qt5 COMPONENTS Gui Core Network REQUIRED) "*.cpp"
)
IF(CMAKE_BUILD_TYPE MATCHES "Debug")
message("debug mode ")
set(CTKCORE CTKCored)
set(CTKPLUG CTKPluginFrameworkd)
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../debug/plugins)
ELSEIF(CMAKE_BUILD_TYPE MATCHES "Release")
set(CTKCORE CTKCore)
set(CTKPLUG CTKPluginFramework)
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../Release/plugins)
ENDIF()
INCLUDE_DIRECTORIES(../include/ctk)
INCLUDE_DIRECTORIES(../include/interface)
link_directories(${BATPATH}/lib)
link_libraries(${CTKCORE} ${CTKPLUG})
aux_source_directory(../fmp_network/ DIR_SRCS) INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/include/ctk)
INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/include/interface)
link_directories(${fmPOS_SOURCE_DIR}/lib)
ADD_LIBRARY (${TARGET_NAME} SHARED ${DIR_SRCS} ${RCC_SCRS} ) ADD_LIBRARY (${TARGET_NAME} SHARED ${DIR_SRCS} res/fmp_network.qrc res/fmp_network.rc )
target_link_libraries(${TARGET_NAME} Qt5::Core Qt5::Gui Qt5::Network) target_link_libraries(${TARGET_NAME}
Qt5::Core
Qt5::Gui
Qt5::Network
${CTKCORE}
${CTKPLUG})
......
@echo off @echo off
::不可以随便加echo,echo做为参数输出
set file_desc=%1 set file_desc=%1
cd /d %~dp0%1 cd /d %~dp0
set "file_desc=%file_desc:_=.%" set "file_desc=%file_desc:_=.%"
echo %file_desc% echo %file_desc%
set year=%date:~0,4% set year=%date:~0,4%
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment