cmake refactoring

This commit is contained in:
2022-08-08 15:36:54 +03:00
parent 556191d443
commit e77ad379ac
3 changed files with 31 additions and 33 deletions

View File

@@ -1,12 +1,12 @@
cmake_minimum_required(VERSION 3.0) cmake_minimum_required(VERSION 3.0)
cmake_policy(SET CMP0017 NEW) # need include() with .cmake cmake_policy(SET CMP0017 NEW) # need include() with .cmake
project(cd) project(CD)
set(cd_MAJOR 1) set(CD_MAJOR 1)
set(cd_MINOR 1) set(CD_MINOR 1)
set(cd_REVISION 0) set(CD_REVISION 0)
set(cd_SUFFIX ) set(CD_SUFFIX )
set(cd_COMPANY SHS) set(CD_COMPANY SHS)
set(cd_DOMAIN org.SHS) set(CD_DOMAIN org.SHS)
if ("x${CMAKE_MODULE_PATH}" STREQUAL "x") if ("x${CMAKE_MODULE_PATH}" STREQUAL "x")
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
@@ -15,7 +15,7 @@ endif()
find_package(PIP REQUIRED) find_package(PIP REQUIRED)
find_package(QAD) find_package(QAD)
include(SHSTKMacros) include(SHSTKMacros)
shstk_begin_project(cd CD) shstk_begin_project(CD)
if(QAD_FOUND) if(QAD_FOUND)
include(QtWraps) include(QtWraps)
include(SHSTKQtMacros) include(SHSTKQtMacros)
@@ -29,12 +29,12 @@ if(QAD_FOUND)
option(UTILS "Build various utils" ${_plugins_default_}) option(UTILS "Build various utils" ${_plugins_default_})
macro(cd_library NAME _MODULES _LIBS) macro(cd_library NAME _MODULES _LIBS)
shstk_qad_project(cd_${NAME} FALSE "cd" "${_MODULES}" "${_LIBS}" ${ARGN}) shstk_qad_project(cd_${NAME} FALSE "CD" "${_MODULES}" "${_LIBS}" ${ARGN})
shstk_qad_install("cd" FALSE cd_${NAME} "${out_HDR}" "out_QM") shstk_qad_install("cd" FALSE cd_${NAME} "${out_HDR}" "out_QM")
endmacro() endmacro()
macro(cd_application NAME _MODULES _LIBS) macro(cd_application NAME _MODULES _LIBS)
shstk_qad_project(${NAME} TRUE "cd" "${_MODULES}" "${_LIBS}" ${ARGN}) shstk_qad_project(${NAME} TRUE "CD" "${_MODULES}" "${_LIBS}" ${ARGN})
shstk_qad_install("cd" TRUE ${NAME} "" "out_QM") shstk_qad_install("cd" TRUE ${NAME} "" "out_QM")
endmacro() endmacro()
@@ -42,7 +42,7 @@ if(QAD_FOUND)
shstk_qad_plugin(cd_${NAME} "${_MODULES}" "cd_${NAME};${_LIBS}") shstk_qad_plugin(cd_${NAME} "${_MODULES}" "cd_${NAME};${_LIBS}")
endmacro() endmacro()
shstk_install(cd FALSE "" "${cd_VERSION_FILE}") shstk_install(cd FALSE "" "${CD_VERSION_FILE}")
file(GLOB CMAKES "cmake/*.cmake" "cmake/*.in") file(GLOB CMAKES "cmake/*.cmake" "cmake/*.in")
install(FILES ${CMAKES} DESTINATION ${CMAKE_ROOT}/Modules) install(FILES ${CMAKES} DESTINATION ${CMAKE_ROOT}/Modules)
@@ -63,9 +63,9 @@ endif()
message("----------CD-----------") message("----------CD-----------")
message(" Build for ${QtVersions}") message(" Build for ${QtVersions}")
message(" Version: ${cd_VERSION} ") message(" Version: ${CD_VERSION} ")
message(" Linkage: ${cd_LIB_TYPE_MSG}") message(" Linkage: ${CD_LIB_TYPE_MSG}")
message(" Type : ${cd_BUILD_TYPE}") message(" Type : ${CD_BUILD_TYPE}")
if (NOT LOCAL) if (NOT LOCAL)
message(" Install: \"${CMAKE_INSTALL_PREFIX}\"") message(" Install: \"${CMAKE_INSTALL_PREFIX}\"")
else() else()

View File

@@ -17,12 +17,10 @@ include(SHSTKMacros)
shstk_is_parent_exists(hasParent PARENT_DIRECTORY) shstk_is_parent_exists(hasParent PARENT_DIRECTORY)
shstk_set_find_dirs(cd CD) shstk_set_find_dirs(CD)
set(_SEARCH_DIR ${cd_LIBDIR})
if (NOT BUILDING_cd) if (NOT BUILDING_CD)
list(APPEND _SEARCH_DIR $ENV{SMSDK_DIR}/lib) shstk_find_header(CD "cd_version.h" ${CD_INCDIR})
shstk_find_header(cd CD "cd_version.h" "")
endif() endif()
if(CD_FIND_VERSION VERSION_GREATER CD_VERSION) if(CD_FIND_VERSION VERSION_GREATER CD_VERSION)
@@ -37,9 +35,9 @@ set( __inc_core "")
set(__libs_core "") set(__libs_core "")
set(__deps_core "PIP") set(__deps_core "PIP")
if (BUILDING_cd) if (BUILDING_CD)
if (NOT SET_TARGETS_cd) if (NOT SET_TARGETS_CD)
#message("create aliases") #message("create aliases")
foreach (_l ${__libs}) foreach (_l ${__libs})
set(_m ${__module_${_l}}) set(_m ${__module_${_l}})
@@ -55,12 +53,12 @@ else()
#message("create interfaces") #message("create interfaces")
foreach (_l ${__libs}) foreach (_l ${__libs})
set(_m ${__module_${_l}}) set(_m ${__module_${_l}})
find_library(CD_LIBRARY_${_l} cd_${_l} HINTS ${_SEARCH_DIR}) find_library(CD_LIBRARY_${_l} cd_${_l} HINTS ${CD_LIBDIR})
if((NOT TARGET CD::${_m}) AND CD_LIBRARY_${_l}) if((NOT TARGET CD::${_m}) AND CD_LIBRARY_${_l})
add_library(CD::${_m} UNKNOWN IMPORTED) add_library(CD::${_m} UNKNOWN IMPORTED)
set_target_properties(CD::${_m} PROPERTIES set_target_properties(CD::${_m} PROPERTIES
IMPORTED_LOCATION "${CD_LIBRARY_${_l}}" IMPORTED_LOCATION "${CD_LIBRARY_${_l}}"
INTERFACE_INCLUDE_DIRECTORIES "${cd_INCLUDES};${__inc_${_l}}" INTERFACE_INCLUDE_DIRECTORIES "${CD_INCLUDES};${__inc_${_l}}"
INTERFACE_LINK_LIBRARIES "${__deps_${_l}};${__libs_${_l}}") INTERFACE_LINK_LIBRARIES "${__deps_${_l}};${__libs_${_l}}")
#message("imported CD::${_m} = ${CD_LIBRARY_${_l}} ${__deps_${_l}} ${__libs_${_l}} ${__inc_${_l}}") #message("imported CD::${_m} = ${CD_LIBRARY_${_l}} ${__deps_${_l}} ${__libs_${_l}} ${__inc_${_l}}")
endif() endif()
@@ -78,10 +76,10 @@ if (QAD_FOUND OR BUILDING_qad)
set(__libs_qt "") set(__libs_qt "")
set(__deps_qt "QAD::PIQt;QAD::Graphic;CD::Core") set(__deps_qt "QAD::PIQt;QAD::Graphic;CD::Core")
if (BUILDING_cd) if (BUILDING_CD)
if (NOT SET_TARGETS_cd) if (NOT SET_TARGETS_CD)
set(SET_TARGETS_cd ON CACHE BOOL "") set(SET_TARGETS_CD ON CACHE BOOL "")
#message("create aliases") #message("create aliases")
foreach(_l ${__libs}) foreach(_l ${__libs})
foreach(_v ${_QT_VERSIONS_}) foreach(_v ${_QT_VERSIONS_})
@@ -102,7 +100,7 @@ if (QAD_FOUND OR BUILDING_qad)
foreach(_l ${__libs}) foreach(_l ${__libs})
foreach(_v ${_QT_VERSIONS_}) foreach(_v ${_QT_VERSIONS_})
set(_m ${__module_${_l}}) set(_m ${__module_${_l}})
find_library(CD_LIBRARY_${_l}${_v} cd_${_l}${_v} HINTS ${cd_LIBDIR}) find_library(CD_LIBRARY_${_l}${_v} cd_${_l}${_v} HINTS ${CD_LIBDIR})
#message("found ${_l}${_v} = ${CD_LIBRARY_${_l}${_v}}") #message("found ${_l}${_v} = ${CD_LIBRARY_${_l}${_v}}")
if((NOT TARGET CD::${_m}${_v}) AND CD_LIBRARY_${_l}${_v}) if((NOT TARGET CD::${_m}${_v}) AND CD_LIBRARY_${_l}${_v})
#message("imported CD::${_m}${_v} = ${CD_LIBRARY_${_l}${_v}}") #message("imported CD::${_m}${_v} = ${CD_LIBRARY_${_l}${_v}}")
@@ -118,7 +116,7 @@ if (QAD_FOUND OR BUILDING_qad)
endforeach() endforeach()
set_target_properties(CD::${_m}${_v} PROPERTIES set_target_properties(CD::${_m}${_v} PROPERTIES
IMPORTED_LOCATION "${CD_LIBRARY_${_l}${_v}}" IMPORTED_LOCATION "${CD_LIBRARY_${_l}${_v}}"
INTERFACE_INCLUDE_DIRECTORIES "${cd_INCLUDES}" INTERFACE_INCLUDE_DIRECTORIES "${CD_INCLUDES}"
INTERFACE_LINK_LIBRARIES "${_deps}") INTERFACE_LINK_LIBRARIES "${_deps}")
endif() endif()
endforeach() endforeach()

View File

@@ -4,14 +4,14 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
file(GLOB CPPS "cdutils_*.cpp") file(GLOB CPPS "cdutils_*.cpp")
file(GLOB HDRS "cdutils_*.h") file(GLOB HDRS "cdutils_*.h")
import_version(${PROJECT_NAME} cd) import_version(${PROJECT_NAME} CD)
set_deploy_property(${PROJECT_NAME} ${cd_LIB_TYPE} set_deploy_property(${PROJECT_NAME} ${CD_LIB_TYPE}
LABEL "Core CD library" LABEL "Core CD library"
FULLNAME "${cd_DOMAIN}.${PROJECT_NAME}" FULLNAME "${CD_DOMAIN}.${PROJECT_NAME}"
COMPANY "${cd_COMPANY}" COMPANY "${CD_COMPANY}"
INFO "Control & Debug library") INFO "Control & Debug library")
make_rc(${PROJECT_NAME} _RC) make_rc(${PROJECT_NAME} _RC)
add_library(${PROJECT_NAME} ${cd_LIB_TYPE} ${CPPS} ${HDRS} ${_RC}) add_library(${PROJECT_NAME} ${CD_LIB_TYPE} ${CPPS} ${HDRS} ${_RC})
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
target_link_libraries(${PROJECT_NAME} PIP) target_link_libraries(${PROJECT_NAME} PIP)
generate_export_header(${PROJECT_NAME}) generate_export_header(${PROJECT_NAME})