cmake refactoring #104

Merged
andrey merged 1 commits from cmake_refactor into master 2022-08-08 16:43:45 +03:00
7 changed files with 53 additions and 53 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(pip) project(PIP)
set(pip_MAJOR 2) set(PIP_MAJOR 2)
set(pip_MINOR 99) set(PIP_MINOR 99)
set(pip_REVISION 0) set(PIP_REVISION 0)
set(pip_SUFFIX ) set(PIP_SUFFIX )
set(pip_COMPANY SHS) set(PIP_COMPANY SHS)
set(pip_DOMAIN org.SHS) set(PIP_DOMAIN org.SHS)
set(GIT_CMAKE_DIR) set(GIT_CMAKE_DIR)
if (NOT DEFINED SHSTKPROJECT) if (NOT DEFINED SHSTKPROJECT)
@@ -53,7 +53,7 @@ include(CheckFunctionExists)
include(PIPMacros) include(PIPMacros)
include(SHSTKMacros) include(SHSTKMacros)
shstk_begin_project(pip PIP) shstk_begin_project(PIP)
set(_ICU_DEFAULT OFF) set(_ICU_DEFAULT OFF)
if((NOT DEFINED WIN32) AND (NOT DEFINED ANDROID_PLATFORM) AND (NOT DEFINED APPLE)) if((NOT DEFINED WIN32) AND (NOT DEFINED ANDROID_PLATFORM) AND (NOT DEFINED APPLE))
@@ -118,11 +118,11 @@ macro(pip_module NAME LIBS LABEL INCLUDES SOURCES MSG)
string(TOUPPER "${_target}" DEF_NAME) string(TOUPPER "${_target}" DEF_NAME)
set(PIP_MSG_${NAME} "yes${MSG}") set(PIP_MSG_${NAME} "yes${MSG}")
import_version(${_target} pip) import_version(${_target} PIP)
set_deploy_property(${_target} ${pip_LIB_TYPE} set_deploy_property(${_target} ${PIP_LIB_TYPE}
LABEL "${LABEL}" LABEL "${LABEL}"
FULLNAME "${pip_DOMAIN}.${_target}" FULLNAME "${PIP_DOMAIN}.${_target}"
COMPANY "${pip_COMPANY}" COMPANY "${PIP_COMPANY}"
INFO "Platform-Independent Primitives") INFO "Platform-Independent Primitives")
make_rc(${_target} _RC) make_rc(${_target} _RC)
@@ -139,7 +139,7 @@ macro(pip_module NAME LIBS LABEL INCLUDES SOURCES MSG)
pip_resources(CRES "${RES}") pip_resources(CRES "${RES}")
endif() endif()
add_definitions(-D${DEF_NAME}) add_definitions(-D${DEF_NAME})
add_library(${_target} ${pip_LIB_TYPE} ${CPPS} ${CRES} ${_RC}) add_library(${_target} ${PIP_LIB_TYPE} ${CPPS} ${CRES} ${_RC})
target_include_directories(${_target} PUBLIC ${PIP_INCLUDES}) target_include_directories(${_target} PUBLIC ${PIP_INCLUDES})
if (NOT "x${RES}" STREQUAL "x") if (NOT "x${RES}" STREQUAL "x")
add_dependencies(${_target} pip_rc) add_dependencies(${_target} pip_rc)
@@ -592,14 +592,14 @@ if ((NOT PIP_FREERTOS) AND (NOT CROSSTOOLS))
string(TOUPPER "${_m}" _mdef) string(TOUPPER "${_m}" _mdef)
list(APPEND DOXY_DEFINES "PIP_${_mdef}_EXPORT") list(APPEND DOXY_DEFINES "PIP_${_mdef}_EXPORT")
endforeach() endforeach()
set(DOXY_PROJECT_NUMBER "${pip_VERSION}") set(DOXY_PROJECT_NUMBER "${PIP_VERSION}")
set(DOXY_QHP_CUST_FILTER_ATTRS "\"PIP ${pip_VERSION}\"") set(DOXY_QHP_CUST_FILTER_ATTRS "\"PIP ${PIP_VERSION}\"")
set(DOXY_QHP_SECT_FILTER_ATTRS "\"PIP ${pip_VERSION}\"") set(DOXY_QHP_SECT_FILTER_ATTRS "\"PIP ${PIP_VERSION}\"")
set(DOXY_EXAMPLE_PATH "\"${CMAKE_CURRENT_SOURCE_DIR}/doc/examples\"") set(DOXY_EXAMPLE_PATH "\"${CMAKE_CURRENT_SOURCE_DIR}/doc/examples\"")
set(DOXY_IMAGE_PATH "\"${CMAKE_CURRENT_SOURCE_DIR}/doc/images\"") set(DOXY_IMAGE_PATH "\"${CMAKE_CURRENT_SOURCE_DIR}/doc/images\"")
set(DOXY_LOGO_PATH "\"${CMAKE_CURRENT_SOURCE_DIR}/doc/pip.png\"") set(DOXY_LOGO_PATH "\"${CMAKE_CURRENT_SOURCE_DIR}/doc/pip.png\"")
set(DOXY_EXCLUDE "\"${CMAKE_CURRENT_SOURCE_DIR}/libs/lua/3rd\"") set(DOXY_EXCLUDE "\"${CMAKE_CURRENT_SOURCE_DIR}/libs/lua/3rd\"")
set(DOXY_DOMAIN "${pip_DOMAIN}.${PROJECT_NAME}.doc") set(DOXY_DOMAIN "${PIP_DOMAIN}.${PROJECT_NAME}.doc")
if ("x${DOC_LANG}" STREQUAL "x") if ("x${DOC_LANG}" STREQUAL "x")
set(DOXY_OUTPUT_LANGUAGE English) set(DOXY_OUTPUT_LANGUAGE English)
set(DOXY_OUTPUT_DIR en) set(DOXY_OUTPUT_DIR en)
@@ -645,9 +645,9 @@ endmacro()
list(REMOVE_ITEM LIBS_STATUS ${PIP_MODULES}) list(REMOVE_ITEM LIBS_STATUS ${PIP_MODULES})
message("----------PIP----------") message("----------PIP----------")
message(" Version: ${pip_VERSION} ") message(" Version: ${PIP_VERSION} ")
message(" Linkage: ${pip_LIB_TYPE_MSG}") message(" Linkage: ${PIP_LIB_TYPE_MSG}")
message(" Type : ${pip_BUILD_TYPE}") message(" Type : ${PIP_BUILD_TYPE}")
if (NOT LOCAL) if (NOT LOCAL)
message(" Install: \"${CMAKE_INSTALL_PREFIX}\"") message(" Install: \"${CMAKE_INSTALL_PREFIX}\"")
else() else()

View File

@@ -20,35 +20,35 @@ main library
cmake_policy(SET CMP0011 NEW) # don`t affect includer policies cmake_policy(SET CMP0011 NEW) # don`t affect includer policies
include(SHSTKMacros) include(SHSTKMacros)
shstk_set_find_dirs(pip PIP) shstk_set_find_dirs(PIP)
set(__libs "usb;crypt;console;fftw;compress;io_utils;opencl;cloud;lua") set(__libs "usb;crypt;console;fftw;compress;io_utils;opencl;cloud;lua")
if (BUILDING_pip) if (BUILDING_PIP)
#set(_libs "pip;pip_usb;pip_console;pip_crypt;pip_fftw;pip_compress;pip_opencl;pip_io_utils;pip_cloud;pip_lua") #set(_libs "pip;pip_usb;pip_console;pip_crypt;pip_fftw;pip_compress;pip_opencl;pip_io_utils;pip_cloud;pip_lua")
#set(_bins "pip_cmg;pip_rc;deploy_tool") #set(_bins "pip_cmg;pip_rc;deploy_tool")
#get_target_property(_path pip BINARY_DIR) #get_target_property(_path pip BINARY_DIR)
#get_target_property(_path pip LIBRARY_OUTPUT_NAME) #get_target_property(_path pip LIBRARY_OUTPUT_NAME)
#message("${_path}") #message("${_path}")
#set(PIP_LIBRARY "$<TARGET_FILE_DIR:pip>/$<TARGET_FILE_NAME:pip>" CACHE STRING "") #set(PIP_LIBRARY "$<TARGET_FILE_DIR:pip>/$<TARGET_FILE_NAME:pip>" CACHE STRING "")
set(PIP_LIBRARY pip CACHE STRING "") set(PIP_LIBRARY pip CACHE STRING "")
set(PIP_FOUND ON CACHE BOOL "") set(PIP_FOUND ON CACHE BOOL "")
else() else()
find_library(PIP_LIBRARY pip HINTS ${pip_LIBDIR}) find_library(PIP_LIBRARY pip HINTS ${PIP_LIBDIR})
foreach (_l ${__libs}) foreach (_l ${__libs})
find_library(PIP_LIBRARY_${_l} pip_${_l} HINTS ${pip_LIBDIR}) find_library(PIP_LIBRARY_${_l} pip_${_l} HINTS ${PIP_LIBDIR})
endforeach() endforeach()
endif() endif()
if (BUILDING_pip AND (NOT CMAKE_CROSSCOMPILING)) if (BUILDING_pPIP AND (NOT CMAKE_CROSSCOMPILING))
set(PIP_CMG "$<TARGET_FILE_DIR:pip_cmg>/$<TARGET_FILE_NAME:pip_cmg>" CACHE STRING "") set(PIP_CMG "$<TARGET_FILE_DIR:pip_cmg>/$<TARGET_FILE_NAME:pip_cmg>" CACHE STRING "")
set(PIP_RC "$<TARGET_FILE_DIR:pip_rc>/$<TARGET_FILE_NAME:pip_rc>" CACHE STRING "") set(PIP_RC "$<TARGET_FILE_DIR:pip_rc>/$<TARGET_FILE_NAME:pip_rc>" CACHE STRING "")
set(PIP_DEPLOY_TOOL "$<TARGET_FILE_DIR:deploy_tool>/$<TARGET_FILE_NAME:deploy_tool>" CACHE STRING "") set(PIP_DEPLOY_TOOL "$<TARGET_FILE_DIR:deploy_tool>/$<TARGET_FILE_NAME:deploy_tool>" CACHE STRING "")
else() else()
find_program(PIP_CMG pip_cmg${pip_BINEXT} HINTS ${pip_BINDIR} ${pip_FIND_PROGRAM_ARG}) find_program(PIP_CMG pip_cmg${PIP_BINEXT} HINTS ${PIP_BINDIR} ${PIP_FIND_PROGRAM_ARG})
find_program(PIP_RC pip_rc${pip_BINEXT} HINTS ${pip_BINDIR} ${pip_FIND_PROGRAM_ARG}) find_program(PIP_RC pip_rc${PIP_BINEXT} HINTS ${PIP_BINDIR} ${PIP_FIND_PROGRAM_ARG})
find_program(PIP_DEPLOY_TOOL deploy_tool${pip_BINEXT} HINTS ${pip_BINDIR} ${pip_FIND_PROGRAM_ARG}) find_program(PIP_DEPLOY_TOOL deploy_tool${PIP_BINEXT} HINTS ${PIP_BINDIR} ${PIP_FIND_PROGRAM_ARG})
endif() endif()
if (NOT PIP_LIBRARY) if (NOT PIP_LIBRARY)
if(PIP_FIND_REQUIRED) if(PIP_FIND_REQUIRED)
@@ -58,7 +58,7 @@ if (NOT PIP_LIBRARY)
endif() endif()
set(_PIP_LIBRARY_PATH_ "${PIP_LIBRARY}") set(_PIP_LIBRARY_PATH_ "${PIP_LIBRARY}")
set(_PIP_ADD_LIBS_ "") set(_PIP_ADD_LIBS_ "")
if (NOT BUILDING_pip) if (NOT BUILDING_PIP)
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
find_library(DL_LIBRARY dl) find_library(DL_LIBRARY dl)
list(APPEND PIP_LIBRARY ${DL_LIBRARY}) list(APPEND PIP_LIBRARY ${DL_LIBRARY})
@@ -75,9 +75,9 @@ if (NOT BUILDING_pip)
endif() endif()
endif() endif()
if (NOT BUILDING_pip) if (NOT BUILDING_PIP)
shstk_find_header(pip PIP "pip_version.h" "${_PIP_LIBRARY_PATH_}") shstk_find_header(PIP "pip_version.h" "${_PIP_LIBRARY_PATH_}")
set(PIP_INCLUDES "${pip_INCLUDES}" CACHE STRING "") set(PIP_INCLUDES "${PIP_INCLUDES}" CACHE STRING "")
endif() endif()
if(PIP_FIND_VERSION VERSION_GREATER PIP_VERSION) if(PIP_FIND_VERSION VERSION_GREATER PIP_VERSION)
message(FATAL_ERROR "PIP version ${PIP_VERSION} is available, but ${PIP_FIND_VERSION} requested!") message(FATAL_ERROR "PIP version ${PIP_VERSION} is available, but ${PIP_FIND_VERSION} requested!")
@@ -103,10 +103,10 @@ set(__deps_io_utils "PIP::Crypt")
set(__deps_cloud "PIP::IOUtils") set(__deps_cloud "PIP::IOUtils")
if (BUILDING_pip) if (BUILDING_PIP)
if (NOT SET_TARGETS_pip) if (NOT SET_TARGETS_PIP)
set(SET_TARGETS_pip ON CACHE BOOL "") set(SET_TARGETS_PIP ON CACHE BOOL "")
#message("create aliases") #message("create aliases")
if((NOT TARGET PIP) AND PIP_LIBRARY) if((NOT TARGET PIP) AND PIP_LIBRARY)
#message("alias PIP = pip") #message("alias PIP = pip")
@@ -128,7 +128,7 @@ else()
add_library(PIP UNKNOWN IMPORTED) add_library(PIP UNKNOWN IMPORTED)
set_target_properties(PIP PROPERTIES set_target_properties(PIP PROPERTIES
IMPORTED_LOCATION "${_PIP_LIBRARY_PATH_}" IMPORTED_LOCATION "${_PIP_LIBRARY_PATH_}"
INTERFACE_INCLUDE_DIRECTORIES "${pip_INCLUDES}" INTERFACE_INCLUDE_DIRECTORIES "${PIP_INCLUDES}"
INTERFACE_LINK_LIBRARIES "${_PIP_ADD_LIBS_}") INTERFACE_LINK_LIBRARIES "${_PIP_ADD_LIBS_}")
#message("imported PIP = ${PIP_LIBRARY}") #message("imported PIP = ${PIP_LIBRARY}")
endif() endif()

View File

@@ -1,9 +1,9 @@
project(picloud) project(picloud)
import_version(${PROJECT_NAME} pip) import_version(${PROJECT_NAME} PIP)
set_deploy_property(${PROJECT_NAME} set_deploy_property(${PROJECT_NAME}
LABEL "PIP Cloud dispatcher" LABEL "PIP Cloud dispatcher"
FULLNAME "${pip_DOMAIN}.picloud" FULLNAME "${PIP_DOMAIN}.picloud"
COMPANY "${pip_COMPANY}" COMPANY "${PIP_COMPANY}"
INFO "PIP Cloud dispatcher") INFO "PIP Cloud dispatcher")
make_rc(${PROJECT_NAME} RC) make_rc(${PROJECT_NAME} RC)
list(APPEND PIP_UTILS_LIST "picloud") list(APPEND PIP_UTILS_LIST "picloud")

View File

@@ -1,10 +1,10 @@
list(APPEND PIP_UTILS_LIST "pip_cmg") list(APPEND PIP_UTILS_LIST "pip_cmg")
set(PIP_UTILS_LIST ${PIP_UTILS_LIST} PARENT_SCOPE) set(PIP_UTILS_LIST ${PIP_UTILS_LIST} PARENT_SCOPE)
import_version(pip_cmg pip) import_version(pip_cmg PIP)
set_deploy_property(pip_cmg set_deploy_property(pip_cmg
LABEL "PIP code model generator" LABEL "PIP code model generator"
FULLNAME "${pip_DOMAIN}.pip_cmg" FULLNAME "${PIP_DOMAIN}.pip_cmg"
COMPANY "${pip_COMPANY}" COMPANY "${PIP_COMPANY}"
INFO "Platform-Independent Primitives") INFO "Platform-Independent Primitives")
make_rc(pip_cmg _RC) make_rc(pip_cmg _RC)
add_executable(pip_cmg "main.cpp" ${_RC}) add_executable(pip_cmg "main.cpp" ${_RC})

View File

@@ -1,10 +1,10 @@
list(APPEND PIP_UTILS_LIST "deploy_tool") list(APPEND PIP_UTILS_LIST "deploy_tool")
set(PIP_UTILS_LIST ${PIP_UTILS_LIST} PARENT_SCOPE) set(PIP_UTILS_LIST ${PIP_UTILS_LIST} PARENT_SCOPE)
import_version(deploy_tool pip) import_version(deploy_tool PIP)
set_deploy_property(deploy_tool set_deploy_property(deploy_tool
LABEL "PIP deploy tool" LABEL "PIP deploy tool"
FULLNAME "${pip_DOMAIN}.deploy_tool" FULLNAME "${PIP_DOMAIN}.deploy_tool"
COMPANY "${pip_COMPANY}" COMPANY "${PIP_COMPANY}"
INFO "Platform-Independent Primitives") INFO "Platform-Independent Primitives")
make_rc(deploy_tool _RC) make_rc(deploy_tool _RC)
file(GLOB SRC "*.cpp" "*.h") file(GLOB SRC "*.cpp" "*.h")

View File

@@ -1,10 +1,10 @@
list(APPEND PIP_UTILS_LIST "pip_rc") list(APPEND PIP_UTILS_LIST "pip_rc")
set(PIP_UTILS_LIST ${PIP_UTILS_LIST} PARENT_SCOPE) set(PIP_UTILS_LIST ${PIP_UTILS_LIST} PARENT_SCOPE)
import_version(pip_rc pip) import_version(pip_rc PIP)
set_deploy_property(pip_rc set_deploy_property(pip_rc
LABEL "PIP resources compiler" LABEL "PIP resources compiler"
FULLNAME "${pip_DOMAIN}.pip_rc" FULLNAME "${PIP_DOMAIN}.pip_rc"
COMPANY "${pip_COMPANY}" COMPANY "${PIP_COMPANY}"
INFO "Platform-Independent Primitives") INFO "Platform-Independent Primitives")
make_rc(pip_rc _RC) make_rc(pip_rc _RC)
file(GLOB SRC "*.cpp" "*.h") file(GLOB SRC "*.cpp" "*.h")

View File

@@ -1,9 +1,9 @@
project(pisd) project(pisd)
import_version(${PROJECT_NAME} pip) import_version(${PROJECT_NAME} PIP)
set_deploy_property(${PROJECT_NAME} set_deploy_property(${PROJECT_NAME}
LABEL "PIP System Daemon" LABEL "PIP System Daemon"
FULLNAME "${pip_DOMAIN}.pisd" FULLNAME "${PIP_DOMAIN}.pisd"
COMPANY "${pip_COMPANY}" COMPANY "${PIP_COMPANY}"
INFO "PIP System Daemon") INFO "PIP System Daemon")
make_rc(${PROJECT_NAME} RC) make_rc(${PROJECT_NAME} RC)
list(APPEND PIP_UTILS_LIST "pisd") list(APPEND PIP_UTILS_LIST "pisd")