Commit 4847757d by xiaojing.zhang

CMake 处理bat中的部分功能

parent e9aff432
......@@ -6,6 +6,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
ADD_DEFINITIONS(-DUNICODE)
set( CMAKE_BUILD_TYPE Debug )
IF(CMAKE_BUILD_TYPE MATCHES "Debug")
message("debug mode ")
set(QTSERVICE QtSolutions_Service-headd)
......@@ -17,7 +18,7 @@ ENDIF()
find_package(Qt5 COMPONENTS Widgets Gui Core Sql Network REQUIRED)
aux_source_directory(../FreemudPOS/ DIR_SRCS)
aux_source_directory( ./ DIR_SRCS)
set(MOC_SRCS
../include/application/fm_singleton.h
......@@ -32,20 +33,15 @@ INCLUDE_DIRECTORIES(../include/ctk)
INCLUDE_DIRECTORIES(../include/application)
INCLUDE_DIRECTORIES(qtservice/src)
link_directories(../lib)
link_libraries(${QTSERVICE} )
add_executable (${TARGET_NAME} ${MOC_SRCS} ${DIR_SRCS} ${RC})
target_link_libraries(${TARGET_NAME} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::Sql)
find_library(LIB_SERPATH ${QTSERVICE} ../lib) #ҿ·
IF(NOT LIB_SERPATH)
MESSAGE(FATAL_ERROR "QtSolutions_Service-headd.lib. not found")
ENDIF(NOT LIB_SERPATH)
MESSAGE(run time lib is ${LIB_SERPATH})
target_link_libraries(${TARGET_NAME} ${LIB_SERPATH})
set( CMAKE_BUILD_TYPE Debug )
......
Plugin-SymbolicName: @VER_TARGET@
Plugin-Version: @VERSION@
Plugin-Name: @VER_TARGET@
Plugin-Copyright: Freemud Ltd. Copyright (C) 2014-@VER_TIME@
Plugin-Vendor: Freemud
......@@ -7,31 +7,67 @@ set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
#通过批处理文件获取版本和资源文件需要的一些信息
find_path(BATPATH fmprc_cmake.bat PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../)
MESSAGE(bat path is ${BATPATH})
set(ORIGIN_TARGET ${TARGET_NAME})
set(ABSPATH ${BATPATH}/fmprc_cmake.bat)
execute_process(COMMAND ${ABSPATH} ${TARGET_NAME} OUTPUT_VARIABLE VER )
string(REGEX REPLACE "\r|\n" " " VERTEMP ${VER})
string(STRIP ${VERTEMP} SEXY_STRING)
string(REPLACE " " ";" SEXY_LIST ${SEXY_STRING})
message(STATUS "list = ${SEXY_LIST}")
list(GET SEXY_LIST 0 VER_TARGET)
message(STATUS "VER_TARGET = ${VER_TARGET}")
list(GET SEXY_LIST 1 VER_TIME)
message(STATUS "VER_TIME = ${VER_TIME}")
list(GET SEXY_LIST 2 VER_MAJOR)
message(STATUS "VER_MAJOR = ${VER_MAJOR}")
list(GET SEXY_LIST 3 VER_MINOR)
message(STATUS "VER_MINOR = ${VER_MINOR}")
list(GET SEXY_LIST 4 VER_REVISION)
message(STATUS "VER_REVISION = ${VER_REVISION}")
list(GET SEXY_LIST 5 VERSION)
message(STATUS "VERSION = ${VERSION}")
list(GET SEXY_LIST 6 VER_BUILD)
message(STATUS "VER_BUILD = ${VER_BUILD}")
set(TARGET_NAME ${TARGET_NAME}_${VERSION})
find_path(versionpath version.h.in PATHS ${CMAKE_CURRENT_SOURCE_DIR}/..)
message(${versionpath})
#资源文件替换及拷贝
configure_file(
"${PROJECT_SOURCE_DIR}/../version.h.in"
"${PROJECT_SOURCE_DIR}/version.h"
)
configure_file(
"${PROJECT_SOURCE_DIR}/../MANIFEST.MF.in"
"${PROJECT_SOURCE_DIR}/res/MANIFEST.MF"
)
configure_file(
"${PROJECT_SOURCE_DIR}/../template.qrc.in"
"${PROJECT_SOURCE_DIR}/res/${ORIGIN_TARGET}.qrc"
)
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)
#编译及相关信息配置
set( CMAKE_BUILD_TYPE Debug )
find_package(Qt5 COMPONENTS Gui Concurrent REQUIRED)
IF(CMAKE_BUILD_TYPE MATCHES "Debug")
message("debug mode ")
set(CTKCORE CTKCored)
set(CTKPLUG CTKPluginFrameworkd)
set(LOG4 log4cxxd)
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(LOG4 log4cxx)
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../Release/plugins)
ENDIF()
#查找bat文件位置
find_path(BATPATH fmprc.bat PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../)
#bat绝对路径
set(ORIGIN_TARGET ${TARGET_NAME})
set(ABSPATH ${BATPATH}/fmprc.bat)
execute_process(COMMAND ${ABSPATH} OUTPUT_VARIABLE VER)
string(REGEX REPLACE "\r|\n|\\s" "" VERTEMP ${VER})
set(TARGET_NAME ${TARGET_NAME}_${VERTEMP})
message("The temp name is: ${TARGET_NAME}")
aux_source_directory(../fmp_logger/ DIR_SRCS)
set(RCC_SCRS res/fmp_logger.qrc
)
......@@ -43,40 +79,14 @@ 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)
target_link_libraries(${TARGET_NAME} Qt5::Core Qt5::Concurrent)
#加载第三方动态库
find_library(LIBPATH ${CTKCORE} ../lib) #查找库路径
IF(NOT LIBPATH)
MESSAGE(FATAL_ERROR "CTKCored.lib not found")
ENDIF(NOT LIBPATH)
MESSAGE(run time lib is ${LIBPATH})
target_link_libraries(${TARGET_NAME} ${LIBPATH})
find_library(LIB2 ${CTKPLUG} ../lib) #查找库路径
IF(NOT LIB2)
MESSAGE(FATAL_ERROR "CTKPluginFrameworkd.lib not found")
ENDIF(NOT LIB2)
MESSAGE(run time lib is ${LIB2})
target_link_libraries(${TARGET_NAME} ${LIB2})
find_library(LIBLOG ${LOG4} ../lib) #查找库路径
IF(NOT LIBLOG)
MESSAGE(FATAL_ERROR "log4cxxd.lib not found")
ENDIF(NOT LIBLOG)
MESSAGE(run time lib is ${LIBLOG})
target_link_libraries(${TARGET_NAME} ${LIBLOG})
execute_process(COMMAND ${ABSPATH} version.h ${ORIGIN_TARGET}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) #生成version.h
set( CMAKE_BUILD_TYPE Debug )
......@@ -7,6 +7,52 @@ set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
#通过批处理文件获取版本和资源文件需要的一些信息
find_path(BATPATH fmprc_cmake.bat PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../)
MESSAGE(bat path is ${BATPATH})
set(ORIGIN_TARGET ${TARGET_NAME})
set(ABSPATH ${BATPATH}/fmprc_cmake.bat)
execute_process(COMMAND ${ABSPATH} ${TARGET_NAME} OUTPUT_VARIABLE VER )
string(REGEX REPLACE "\r|\n" " " VERTEMP ${VER})
string(STRIP ${VERTEMP} SEXY_STRING)
string(REPLACE " " ";" SEXY_LIST ${SEXY_STRING})
message(STATUS "list = ${SEXY_LIST}")
list(GET SEXY_LIST 0 VER_TARGET)
message(STATUS "VER_TARGET = ${VER_TARGET}")
list(GET SEXY_LIST 1 VER_TIME)
message(STATUS "VER_TIME = ${VER_TIME}")
list(GET SEXY_LIST 2 VER_MAJOR)
message(STATUS "VER_MAJOR = ${VER_MAJOR}")
list(GET SEXY_LIST 3 VER_MINOR)
message(STATUS "VER_MINOR = ${VER_MINOR}")
list(GET SEXY_LIST 4 VER_REVISION)
message(STATUS "VER_REVISION = ${VER_REVISION}")
list(GET SEXY_LIST 5 VERSION)
message(STATUS "VERSION = ${VERSION}")
list(GET SEXY_LIST 6 VER_BUILD)
message(STATUS "VER_BUILD = ${VER_BUILD}")
set(TARGET_NAME ${TARGET_NAME}_${VERSION})
find_path(versionpath version.h.in PATHS ${CMAKE_CURRENT_SOURCE_DIR}/..)
message(${versionpath})
#资源文件替换及拷贝
configure_file(
"${PROJECT_SOURCE_DIR}/../version.h.in"
"${PROJECT_SOURCE_DIR}/version.h"
)
configure_file(
"${PROJECT_SOURCE_DIR}/../MANIFEST.MF.in"
"${PROJECT_SOURCE_DIR}/res/MANIFEST.MF"
)
configure_file(
"${PROJECT_SOURCE_DIR}/../template.qrc.in"
"${PROJECT_SOURCE_DIR}/res/${ORIGIN_TARGET}.qrc"
)
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)
#编译及相关信息配置
set( CMAKE_BUILD_TYPE Debug )
find_package(Qt5 COMPONENTS Gui Core REQUIRED)
......@@ -21,15 +67,6 @@ ELSEIF(CMAKE_BUILD_TYPE MATCHES "Release")
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../Release/plugins)
ENDIF()
#查找bat文件位置
find_path(BATPATH fmprc.bat PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../)
#bat绝对路径
set(ORIGIN_TARGET ${TARGET_NAME})
set(ABSPATH ${BATPATH}/fmprc.bat)
execute_process(COMMAND ${ABSPATH} OUTPUT_VARIABLE VER)
string(REGEX REPLACE "\r|\n|\\s" "" VERTEMP ${VER})
set(TARGET_NAME ${TARGET_NAME}_${VERTEMP})
message("The temp name is: ${TARGET_NAME}")
set(RCC_SCRS res/fmp_manager.qrc
)
......@@ -42,6 +79,9 @@ aux_source_directory(../fmp_manager/ DIR_SRCS)
INCLUDE_DIRECTORIES(../include/ctk)
INCLUDE_DIRECTORIES(../include/interface)
link_directories(${BATPATH}/lib)
link_libraries(${CTKCORE} ${CTKPLUG})
ADD_LIBRARY (${TARGET_NAME} SHARED ${DIR_SRCS} ${RCC_SCRS} res/fmp_manager.rc )
......@@ -49,32 +89,7 @@ target_link_libraries(${TARGET_NAME} Qt5::Gui Qt5::Core)
#加载第三方动态库
find_library(LIBPATH ${CTKCORE} ../lib) #查找库路径
IF(NOT LIBPATH)
MESSAGE(FATAL_ERROR "CTKCored.lib not found")
ENDIF(NOT LIBPATH)
MESSAGE(run time lib is ${LIBPATH})
target_link_libraries(${TARGET_NAME} ${LIBPATH})
find_library(LIB2 ${CTKPLUG} ../lib) #查找库路径
IF(NOT LIB2)
MESSAGE(FATAL_ERROR "CTKPluginFrameworkd.lib not found")
ENDIF(NOT LIB2)
MESSAGE(run time lib is ${LIB2})
target_link_libraries(${TARGET_NAME} ${LIB2})
execute_process(COMMAND ${ABSPATH} version.h ${ORIGIN_TARGET}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) #生成version.h
set( CMAKE_BUILD_TYPE Debug )
#平台判断
#生成可执行文件名称
......@@ -7,6 +7,53 @@ set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
#通过批处理文件获取版本和资源文件需要的一些信息
find_path(BATPATH fmprc_cmake.bat PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../)
MESSAGE(bat path is ${BATPATH})
set(ORIGIN_TARGET ${TARGET_NAME})
set(ABSPATH ${BATPATH}/fmprc_cmake.bat)
execute_process(COMMAND ${ABSPATH} ${TARGET_NAME} OUTPUT_VARIABLE VER )
string(REGEX REPLACE "\r|\n" " " VERTEMP ${VER})
string(STRIP ${VERTEMP} SEXY_STRING)
string(REPLACE " " ";" SEXY_LIST ${SEXY_STRING})
message(STATUS "list = ${SEXY_LIST}")
list(GET SEXY_LIST 0 VER_TARGET)
message(STATUS "VER_TARGET = ${VER_TARGET}")
list(GET SEXY_LIST 1 VER_TIME)
message(STATUS "VER_TIME = ${VER_TIME}")
list(GET SEXY_LIST 2 VER_MAJOR)
message(STATUS "VER_MAJOR = ${VER_MAJOR}")
list(GET SEXY_LIST 3 VER_MINOR)
message(STATUS "VER_MINOR = ${VER_MINOR}")
list(GET SEXY_LIST 4 VER_REVISION)
message(STATUS "VER_REVISION = ${VER_REVISION}")
list(GET SEXY_LIST 5 VERSION)
message(STATUS "VERSION = ${VERSION}")
list(GET SEXY_LIST 6 VER_BUILD)
message(STATUS "VER_BUILD = ${VER_BUILD}")
set(TARGET_NAME ${TARGET_NAME}_${VERSION})
find_path(versionpath version.h.in PATHS ${CMAKE_CURRENT_SOURCE_DIR}/..)
message(${versionpath})
#资源文件替换及拷贝
configure_file(
"${PROJECT_SOURCE_DIR}/../version.h.in"
"${PROJECT_SOURCE_DIR}/version.h"
)
configure_file(
"${PROJECT_SOURCE_DIR}/../MANIFEST.MF.in"
"${PROJECT_SOURCE_DIR}/res/MANIFEST.MF"
)
configure_file(
"${PROJECT_SOURCE_DIR}/../template.qrc.in"
"${PROJECT_SOURCE_DIR}/res/${ORIGIN_TARGET}.qrc"
)
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)
#编译及相关信息配置
set( CMAKE_BUILD_TYPE Debug )
find_package(Qt5 COMPONENTS Gui Core Network REQUIRED)
......@@ -21,21 +68,10 @@ ELSEIF(CMAKE_BUILD_TYPE MATCHES "Release")
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../Release/plugins)
ENDIF()
#查找bat文件位置
find_path(BATPATH fmprc.bat PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../)
#bat绝对路径
set(ORIGIN_TARGET ${TARGET_NAME})
set(ABSPATH ${BATPATH}/fmprc.bat)
execute_process(COMMAND ${ABSPATH} version.h ${ORIGIN_TARGET}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) #生成version.h
execute_process(COMMAND ${ABSPATH} OUTPUT_VARIABLE VER)
string(REGEX REPLACE "\r|\n|\\s" "" VERTEMP ${VER})
set(TARGET_NAME ${TARGET_NAME}_${VERTEMP})
message("The temp name is: ${TARGET_NAME}")
INCLUDE_DIRECTORIES(../include/ctk)
INCLUDE_DIRECTORIES(../include/interface)
link_directories(${BATPATH}/lib)
link_libraries(${CTKCORE} ${CTKPLUG})
aux_source_directory(../fmp_network/ DIR_SRCS)
......@@ -47,25 +83,6 @@ ADD_LIBRARY (${TARGET_NAME} SHARED ${DIR_SRCS} ${RCC_SCRS} )
target_link_libraries(${TARGET_NAME} Qt5::Core Qt5::Gui Qt5::Network)
#加载第三方动态库
find_library(LIBPATH ${CTKCORE} ../lib) #查找库路径
IF(NOT LIBPATH)
MESSAGE(FATAL_ERROR "CTKCored.lib not found")
ENDIF(NOT LIBPATH)
MESSAGE(run time lib is ${LIBPATH})
target_link_libraries(${TARGET_NAME} ${LIBPATH})
find_library(LIB2 ${CTKPLUG} ../lib) #查找库路径
IF(NOT LIB2)
MESSAGE(FATAL_ERROR "CTKPluginFrameworkd.lib not found")
ENDIF(NOT LIB2)
MESSAGE(run time lib is ${LIB2})
target_link_libraries(${TARGET_NAME} ${LIB2})
set( CMAKE_BUILD_TYPE Debug )
......
......@@ -7,7 +7,52 @@ set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
#通过批处理文件获取版本和资源文件需要的一些信息
find_path(BATPATH fmprc_cmake.bat PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../)
MESSAGE(bat path is ${BATPATH})
set(ORIGIN_TARGET ${TARGET_NAME})
set(ABSPATH ${BATPATH}/fmprc_cmake.bat)
execute_process(COMMAND ${ABSPATH} ${TARGET_NAME} OUTPUT_VARIABLE VER )
string(REGEX REPLACE "\r|\n" " " VERTEMP ${VER})
string(STRIP ${VERTEMP} SEXY_STRING)
string(REPLACE " " ";" SEXY_LIST ${SEXY_STRING})
message(STATUS "list = ${SEXY_LIST}")
list(GET SEXY_LIST 0 VER_TARGET)
message(STATUS "VER_TARGET = ${VER_TARGET}")
list(GET SEXY_LIST 1 VER_TIME)
message(STATUS "VER_TIME = ${VER_TIME}")
list(GET SEXY_LIST 2 VER_MAJOR)
message(STATUS "VER_MAJOR = ${VER_MAJOR}")
list(GET SEXY_LIST 3 VER_MINOR)
message(STATUS "VER_MINOR = ${VER_MINOR}")
list(GET SEXY_LIST 4 VER_REVISION)
message(STATUS "VER_REVISION = ${VER_REVISION}")
list(GET SEXY_LIST 5 VERSION)
message(STATUS "VERSION = ${VERSION}")
list(GET SEXY_LIST 6 VER_BUILD)
message(STATUS "VER_BUILD = ${VER_BUILD}")
set(TARGET_NAME ${TARGET_NAME}_${VERSION})
find_path(versionpath version.h.in PATHS ${CMAKE_CURRENT_SOURCE_DIR}/..)
message(${versionpath})
#资源文件替换及拷贝
configure_file(
"${PROJECT_SOURCE_DIR}/../version.h.in"
"${PROJECT_SOURCE_DIR}/version.h"
)
configure_file(
"${PROJECT_SOURCE_DIR}/../MANIFEST.MF.in"
"${PROJECT_SOURCE_DIR}/res/MANIFEST.MF"
)
configure_file(
"${PROJECT_SOURCE_DIR}/../template.qrc.in"
"${PROJECT_SOURCE_DIR}/res/${ORIGIN_TARGET}.qrc"
)
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)
#编译及相关信息配置
set( CMAKE_BUILD_TYPE Debug )
find_package(Qt5 COMPONENTS Widgets Gui Core Network WinExtras REQUIRED)
IF(CMAKE_BUILD_TYPE MATCHES "Debug")
......@@ -21,15 +66,6 @@ ELSEIF(CMAKE_BUILD_TYPE MATCHES "Release")
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../Release/plugins)
ENDIF()
#查找bat文件位置
find_path(BATPATH fmprc.bat PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../)
#bat绝对路径
set(ORIGIN_TARGET ${TARGET_NAME})
set(ABSPATH ${BATPATH}/fmprc.bat)
execute_process(COMMAND ${ABSPATH} OUTPUT_VARIABLE VER)
string(REGEX REPLACE "\r|\n|\\s" "" VERTEMP ${VER})
set(TARGET_NAME ${TARGET_NAME}_${VERTEMP})
message("The temp name is: ${TARGET_NAME}")
aux_source_directory(../fmp_redeem/ DIR_SRCS)
......@@ -46,36 +82,14 @@ qt5_add_resources(RCC ${RCC_SCRS})
INCLUDE_DIRECTORIES(../include/ctk)
INCLUDE_DIRECTORIES(../include/interface)
link_directories(${BATPATH}/lib)
link_libraries(${CTKCORE} ${CTKPLUG})
ADD_LIBRARY (${TARGET_NAME} SHARED ${DIR_SRCS} ${MOC_SRCS} ${RCC_SCRS} res/fmp_redeem.rc)
target_link_libraries(${TARGET_NAME} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::WinExtras)
#加载第三方动态库
find_library(LIBPATH ${CTKCORE} ../lib) #查找库路径
IF(NOT LIBPATH)
MESSAGE(FATAL_ERROR "CTKCored.lib not found")
ENDIF(NOT LIBPATH)
MESSAGE(run time lib is ${LIBPATH})
target_link_libraries(${TARGET_NAME} ${LIBPATH})
find_library(LIB2 ${CTKPLUG} ../lib) #查找库路径
IF(NOT LIB2)
MESSAGE(FATAL_ERROR "CTKPluginFrameworkd.lib not found")
ENDIF(NOT LIB2)
MESSAGE(run time lib is ${LIB2})
target_link_libraries(${TARGET_NAME} ${LIB2})
execute_process(COMMAND ${ABSPATH} version.h ${ORIGIN_TARGET}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) #生成version.h
set( CMAKE_BUILD_TYPE Debug )
#平台判断
#生成可执行文件名称
......@@ -6,6 +6,56 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
#通过批处理文件获取版本和资源文件需要的一些信息
find_path(BATPATH fmprc_cmake.bat PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../)
MESSAGE(bat path is ${BATPATH})
set(ORIGIN_TARGET ${TARGET_NAME})
set(ABSPATH ${BATPATH}/fmprc_cmake.bat)
execute_process(COMMAND ${ABSPATH} ${TARGET_NAME} OUTPUT_VARIABLE VER )
MESSAGE(STATUS "batoutput= ${VER}")
string(REGEX REPLACE "\r|\n" " " VERTEMP ${VER})
string(STRIP ${VERTEMP} SEXY_STRING)
string(REPLACE " " ";" SEXY_LIST ${SEXY_STRING})
message(STATUS "list = ${SEXY_LIST}")
list(GET SEXY_LIST 0 VER_TARGET)
message(STATUS "VER_TARGET = ${VER_TARGET}")
list(GET SEXY_LIST 1 VER_TIME)
message(STATUS "VER_TIME = ${VER_TIME}")
list(GET SEXY_LIST 2 VER_MAJOR)
message(STATUS "VER_MAJOR = ${VER_MAJOR}")
list(GET SEXY_LIST 3 VER_MINOR)
message(STATUS "VER_MINOR = ${VER_MINOR}")
list(GET SEXY_LIST 4 VER_REVISION)
message(STATUS "VER_REVISION = ${VER_REVISION}")
list(GET SEXY_LIST 5 VERSION)
message(STATUS "VERSION = ${VERSION}")
list(GET SEXY_LIST 6 VER_BUILD)
message(STATUS "VER_BUILD = ${VER_BUILD}")
set(TARGET_NAME ${TARGET_NAME}_${VERSION})
find_path(versionpath version.h.in PATHS ${CMAKE_CURRENT_SOURCE_DIR}/..)
message(${versionpath})
#资源文件替换及拷贝
configure_file(
"${PROJECT_SOURCE_DIR}/../version.h.in"
"${PROJECT_SOURCE_DIR}/version.h"
)
configure_file(
"${PROJECT_SOURCE_DIR}/../MANIFEST.MF.in"
"${PROJECT_SOURCE_DIR}/res/MANIFEST.MF"
)
configure_file(
"${PROJECT_SOURCE_DIR}/../template.qrc.in"
"${PROJECT_SOURCE_DIR}/res/${ORIGIN_TARGET}.qrc"
)
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)
#编译及相关信息配置
set( CMAKE_BUILD_TYPE Debug )
find_package(Qt5Widgets CONFIG REQUIRED)
IF(CMAKE_BUILD_TYPE MATCHES "Debug")
message("debug mode ")
set(CTKCORE CTKCored)
......@@ -22,25 +72,6 @@ ELSEIF(CMAKE_BUILD_TYPE MATCHES "Release")
ENDIF()
ADD_DEFINITIONS(-DQUAZIP_STATIC)
find_package(Qt5Widgets CONFIG REQUIRED)
#查找bat文件位置
find_path(BATPATH fmprc.bat PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../)
message("The bat find path is: ${BATPATH}")
#bat绝对路径
set(ORIGIN_TARGET ${TARGET_NAME})
message("origin target: ${ORIGIN_TARGET}")
set(ABSPATH ${BATPATH}/fmprc.bat)
message("The bat full path is: ${ABSPATH}")
execute_process(COMMAND ${ABSPATH} OUTPUT_VARIABLE VER)
string(REGEX REPLACE "\r|\n|\\s" "" VERTEMP ${VER})
set(TARGET_NAME ${TARGET_NAME}_${VERTEMP})
message("The temp name is: ${TARGET_NAME}")
aux_source_directory(../fmp_syncer/ DIR_SRCS)
set(RCC_SCRS res/fmp_syncer.qrc)
qt5_add_resources(RCC ${RCC_SCRS})
......@@ -50,6 +81,9 @@ INCLUDE_DIRECTORIES(../include/interface)
INCLUDE_DIRECTORIES(../include/zlib)
INCLUDE_DIRECTORIES(../include/quazip)
link_directories(${BATPATH}/lib)
link_libraries(${CTKCORE} ${CTKPLUG} ${QUEZIP} ${ZLIB})
ADD_LIBRARY (${TARGET_NAME} SHARED ${DIR_SRCS} ${RCC_SCRS} res/fmp_syncer.rc)
......@@ -57,46 +91,5 @@ ADD_LIBRARY (${TARGET_NAME} SHARED ${DIR_SRCS} ${RCC_SCRS} res/fmp_syncer.rc)
target_link_libraries(${TARGET_NAME} Qt5::Widgets)
#加载第三方动态库
find_library(LIBPATH ${CTKCORE} ../lib) #查找库路径
IF(NOT LIBPATH)
MESSAGE(FATAL_ERROR "CTKCored.lib not found")
ENDIF(NOT LIBPATH)
MESSAGE(run time lib is ${LIBPATH})
target_link_libraries(${TARGET_NAME} ${LIBPATH})
find_library(LIB2 ${CTKPLUG} ../lib) #查找库路径
IF(NOT LIB2)
MESSAGE(FATAL_ERROR "CTKPluginFrameworkd.lib not found")
ENDIF(NOT LIB2)
MESSAGE(run time lib is ${LIB2})
target_link_libraries(${TARGET_NAME} ${LIB2})
find_library(LIBQUAZ ${QUEZIP} ../lib)
IF(NOT LIBQUAZ)
MESSAGE(FATAL_ERROR "quazipd.lib not found")
ENDIF(NOT LIBQUAZ)
MESSAGE(run time lib is ${LIBQUAZ})
target_link_libraries(${TARGET_NAME} ${LIBQUAZ})
find_library(LIBZLIB ${ZLIB} ../lib)
IF(NOT LIBZLIB)
MESSAGE(FATAL_ERROR "zlibstaticd.lib not found")
ENDIF(NOT LIBZLIB)
MESSAGE(run time lib is ${LIBZLIB})
target_link_libraries(${TARGET_NAME} ${LIBZLIB})
execute_process(COMMAND ${ABSPATH} version.h ${ORIGIN_TARGET}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) #生成version.h
set( CMAKE_BUILD_TYPE Debug )
#平台判断
#生成可执行文件名称
@echo off
set file_desc=%1
cd /d %~dp0%1
set "file_desc=%file_desc:_=.%"
echo %file_desc%
set year=%date:~0,4%
echo %year%
for /f %%i in ('git describe') do set ver_tag=%%i
for /f "tokens=1 delims=-" %%i in ("%ver_tag%") do (
set ver_tag=%%i
)
set tmp_ver=%ver_tag%
if "%tmp_ver%" neq "" set ver_tag=%tmp_ver%
for /f "tokens=1-3 delims=." %%h in ("%ver_tag%") do (
set ver_maj=%%h
set ver_min=%%i
set ver_rev=%%j
)
echo %ver_maj%
echo %ver_min%
echo %ver_rev%
set version=%ver_maj%.%ver_min%.%ver_rev%
echo %version%
for /f %%i in ('git rev-list HEAD --count') do set ver_build=%%i
echo %ver_build%
<RCC>
<qresource prefix="/@VER_TARGET@/META-INF">
<file>MANIFEST.MF</file>
</qresource>
</RCC>
#ifndef _VERSION_H_
#define _VERSION_H_
#define VER_MAJOR @VER_MAJOR@
#define VER_MINOR @VER_MINOR@
#define VER_REVISION @VER_REVISION@
#define VER_BUILD @VER_BUILD@
//! Convert version numbers to string
#define _STR(S) #S
#define STR(S) _STR(S)
#define _MAK_VER(maj, min, rev, build) STR(##maj.##min.##rev.##build\0)
#define MAK_VER(maj, min, rev, build) _MAK_VER(maj, min, rev, build)
//! Resource version infomation
#define RES_FILE_VER VER_MAJOR,VER_MINOR,VER_REVISION,VER_BUILD
#define RES_PRODUCT_VER VER_MAJOR,VER_MINOR,VER_REVISION,VER_BUILD
#define RES_STR_FILE_VER MAK_VER(VER_MAJOR, VER_MINOR, VER_REVISION, VER_BUILD)
#define RES_STR_PRODUCT_VER MAK_VER(VER_MAJOR, VER_MINOR, VER_REVISION, VER_BUILD)
#define RES_COMPANY_NAME "上海非码网络科技有限公司\0"
#define RES_COPYRIGHT "Freemud Ltd. Copyright (C) 2014-@VER_TIME@\0"
#define RES_FILE_DESC "@VER_TARGET@\0"
#define RES_INTER_NAME "@VER_TARGET@\0"
#define RES_FILE_NAME "@VER_TARGET@\0"
#define RES_PRODUCT_NAME "@VER_TARGET@\0"
#define RES_FILE_EXT "*\0"
#endif //!_VERSION_H_
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