Commit a0f5f1d0 by xiaojing.zhang

1.Cmake优化

parent 3f08c182
...@@ -2,18 +2,31 @@ cmake_minimum_required(VERSION 3.1.0) ...@@ -2,18 +2,31 @@ cmake_minimum_required(VERSION 3.1.0)
project(fmp_vip) project(fmp_vip)
SET(TARGET_NAME fmp_vip) SET(TARGET_NAME fmp_vip)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC_SEARCH_PATHS ../fmvip/windows/forms/)
#通过批处理文件获取版本和资源文件需要的一些信息
find_path(BATPATH fmprc_cmake.bat PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../../)
MESSAGE(bat path is ${BATPATH}) set( CMAKE_BUILD_TYPE Debug )
find_package(Qt5 COMPONENTS Widgets Gui Core Sql Network Concurrent 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})
...@@ -34,7 +47,7 @@ list(GET SEXY_LIST 6 VER_BUILD) ...@@ -34,7 +47,7 @@ list(GET SEXY_LIST 6 VER_BUILD)
message(STATUS "VER_BUILD = ${VER_BUILD}") message(STATUS "VER_BUILD = ${VER_BUILD}")
set(TARGET_NAME ${TARGET_NAME}_${VERSION}) set(TARGET_NAME ${TARGET_NAME}_${VERSION})
find_path(versionpath version.h.in PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../../) find_path(versionpath version.h.in PATHS ${CMAKE_CURRENT_SOURCE_DIR}/..)
message(${versionpath}) message(${versionpath})
#资源文件替换及拷贝 #资源文件替换及拷贝
configure_file( configure_file(
...@@ -53,64 +66,64 @@ configure_file("${PROJECT_SOURCE_DIR}/../../pluginrc.h" "${PROJECT_SOURCE_DIR}/. ...@@ -53,64 +66,64 @@ configure_file("${PROJECT_SOURCE_DIR}/../../pluginrc.h" "${PROJECT_SOURCE_DIR}/.
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)
#编译及相关信息配置 #编译及相关信息配置
set( CMAKE_BUILD_TYPE Debug )
find_package(Qt5 COMPONENTS Widgets Gui Core Sql Network Concurrent REQUIRED)
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()
aux_source_directory(../fmp_vip/ DIR_SRCS)
aux_source_directory(../fmvip/ DIR_fmvip) file(GLOB DIR_SRCS
aux_source_directory(../fmvip/backup/ DIR_fmvip) "*.h"
aux_source_directory(../fmvip/database/ DIR_database) "*.cpp"
aux_source_directory(../fmvip/items/ DIR_items) ${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/*.h
aux_source_directory(../fmvip/task/ DIR_task) ${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/*.cpp
aux_source_directory(../fmvip/windows/ DIR_windows) ${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/backup/*.h
aux_source_directory(../fmvip/res/ DIR_res) ${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/backup/*.cpp
${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/database/*.h
${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/database/*.cpp
INCLUDE_DIRECTORIES(../../include/ctk) ${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/items/*.h
INCLUDE_DIRECTORIES(../../include/interface) ${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/items/*.cpp
INCLUDE_DIRECTORIES(../fmvip/database) ${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/task/*.h
INCLUDE_DIRECTORIES(../fmvip/task) ${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/task/*.cpp
INCLUDE_DIRECTORIES(../fmvip/windows)
INCLUDE_DIRECTORIES(../fmvip/backup)
INCLUDE_DIRECTORIES(../fmvip/items)
INCLUDE_DIRECTORIES(../fmvip)
link_directories(${BATPATH}/lib)
link_libraries(${CTKCORE} ${CTKPLUG})
set(MOC_SRCS
fmp_vip_i.h
) )
FILE(GLOB UI_FILES ${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/windows/forms/*.ui)
qt5_wrap_ui(WRAP_FILES ${UI_FILES})
qt5_wrap_cpp( MOC ${MOC_SRCS})
set(RCC_SCRS ../fmvip/res/img.qrc)
qt5_add_resources(RCC ${RCC_SCRS})
qt5_add_resources(RCC ${fmPOS_SOURCE_DIR}/fmp_vip/res/fmp_vip.qrc
${fmPOS_SOURCE_DIR}/fmp_vip/res/fmp_vip.rc)
ADD_LIBRARY (${TARGET_NAME} SHARED ${DIR_SRCS} ${DIR_fmvip} ${DIR_fmvip} ${DIR_fmvip} ${DIR_database} ${DIR_items} ${DIR_task} ${DIR_windows} FILE(GLOB MOC_FILE ${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/windows/*.h
${DIR_res} ${UIC_SRCS} ${MOC_SRCS} ${RCC_SCRS} ) ${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/windows/*.cpp)
target_link_libraries(${TARGET_NAME} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::Sql Qt5::Concurrent) qt5_wrap_cpp(mocs ${MOC_FILE})
INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/include/ctk)
INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/include/interface)
INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/fmp_vip/fmvip)
INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/database)
INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/task)
INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/windows)
INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/backup)
INCLUDE_DIRECTORIES(${fmPOS_SOURCE_DIR}/fmp_vip/fmvip/items)
link_directories(${fmPOS_SOURCE_DIR}/lib)
ADD_LIBRARY (${TARGET_NAME} SHARED ${mocs} ${DIR_SRCS} ${WRAP_FILES} ${RCC})
target_link_libraries(${TARGET_NAME}
Qt5::Widgets
Qt5::Core
Qt5::Gui
Qt5::Network
Qt5::Sql
Qt5::Concurrent
${CTKCORE}
${CTKPLUG})
......
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