cmake refactoring #1

Merged
andrey merged 1 commits from cmake_refactor into master 2022-08-08 16:42:29 +03:00
3 changed files with 31 additions and 33 deletions

View File

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

View File

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

View File

@@ -4,14 +4,14 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
file(GLOB CPPS "cdutils_*.cpp")
file(GLOB HDRS "cdutils_*.h")
import_version(${PROJECT_NAME} cd)
set_deploy_property(${PROJECT_NAME} ${cd_LIB_TYPE}
import_version(${PROJECT_NAME} CD)
set_deploy_property(${PROJECT_NAME} ${CD_LIB_TYPE}
LABEL "Core CD library"
FULLNAME "${cd_DOMAIN}.${PROJECT_NAME}"
COMPANY "${cd_COMPANY}"
FULLNAME "${CD_DOMAIN}.${PROJECT_NAME}"
COMPANY "${CD_COMPANY}"
INFO "Control & Debug library")
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_link_libraries(${PROJECT_NAME} PIP)
generate_export_header(${PROJECT_NAME})