Use meta-data provided in CMake config for version info
* Don't set custom meta-data on targets * It isn't exported anyways * Remove version on application target because itcauses CMake to create symlinks
This commit is contained in:
parent
be03e5ad4c
commit
b8c2e79e3d
|
@ -44,8 +44,6 @@ target_compile_definitions(${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}
|
|||
PRIVATE "${META_PRIVATE_SHARED_LIB_COMPILE_DEFINITIONS}"
|
||||
)
|
||||
set_target_properties(${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX} PROPERTIES
|
||||
APP_NAME "${META_APP_NAME}"
|
||||
VERSION "${META_APP_VERSION}"
|
||||
CXX_STANDARD "${META_CXX_STANDARD}"
|
||||
LINK_SEARCH_START_STATIC ${STATIC_LINKAGE}
|
||||
LINK_SEARCH_END_STATIC ${STATIC_LINKAGE}
|
||||
|
|
|
@ -9,27 +9,35 @@ endif()
|
|||
include(TemplateFinder)
|
||||
find_template_file("config.h" CPP_UTILITIES CONFIG_H_TEMPLATE_FILE)
|
||||
|
||||
# create list of dependency versions present at link time
|
||||
# create list of dependency versions present at link time (one list for shared library and another for
|
||||
# the static library since the lists might differ)
|
||||
include(ListToString)
|
||||
foreach(LINKAGE IN ITEMS "" "STATIC_")
|
||||
unset(DEPENCENCY_VERSIONS)
|
||||
unset(${LINKAGE}DEPENCENCY_VERSIONS_ARRAY)
|
||||
# iterate through public and private libraries of shared/static library
|
||||
foreach(DEPENDENCY IN LISTS PUBLIC_${LINKAGE}LIBRARIES PRIVATE_${LINKAGE}LIBRARIES)
|
||||
if(TARGET ${DEPENDENCY})
|
||||
# find version and display name for target
|
||||
string(SUBSTRING "${DEPENDENCY}" 0 5 DEPENDENCY_PREFIX)
|
||||
if("${DEPENDENCY_PREFIX}" STREQUAL "Qt5::")
|
||||
# read meta-data of Qt module
|
||||
string(SUBSTRING "${DEPENDENCY}" 5 -1 DEPENDENCY_MODULE_NAME)
|
||||
set(DEPENDENCY "Qt ${DEPENDENCY_MODULE_NAME}")
|
||||
set(DEPENDENCY_DISPLAY_NAME "Qt ${DEPENDENCY_MODULE_NAME}")
|
||||
set(DEPENDENCY_VER "${Qt5${DEPENDENCY_MODULE_NAME}_VERSION_STRING}")
|
||||
else()
|
||||
get_target_property(DEPENDENCY_APP_NAME "${DEPENDENCY}" APP_NAME)
|
||||
get_target_property(DEPENDENCY_VER "${DEPENDENCY}" VERSION)
|
||||
if(DEPENDENCY_APP_NAME AND NOT "${DEPENDENCY_APP_NAME}" STREQUAL "DEPENDENCY_APP_NAME-NOTFOUND")
|
||||
set(DEPENDENCY "${DEPENDENCY_APP_NAME}")
|
||||
elseif(${DEPENDENCY}_varname)
|
||||
# read meta-data of one of my own libraries
|
||||
set(DEPENDENCY_VARNAME "${${DEPENDENCY}_varname}")
|
||||
set(DEPENDENCY_DISPLAY_NAME "${DEPENDENCY}")
|
||||
if(${DEPENDENCY_VARNAME}_DISPLAY_NAME)
|
||||
set(DEPENDENCY_DISPLAY_NAME "${${DEPENDENCY_VARNAME}_DISPLAY_NAME}")
|
||||
endif()
|
||||
set(DEPENDENCY_VER "${${DEPENDENCY_VARNAME}_VERSION}")
|
||||
else()
|
||||
# FIXME: provide meta-data for other libs, too
|
||||
endif()
|
||||
if(DEPENDENCY_VER AND NOT "${DEPENDENCY_VER}" STREQUAL "DEPENDENCY_VER-NOTFOUND")
|
||||
list(APPEND DEPENCENCY_VERSIONS "${DEPENDENCY}: ${DEPENDENCY_VER}")
|
||||
list(APPEND DEPENCENCY_VERSIONS "${DEPENDENCY_DISPLAY_NAME}: ${DEPENDENCY_VER}")
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
|
|
|
@ -134,8 +134,7 @@ if(BUILD_SHARED_LIBS)
|
|||
PRIVATE "${META_PRIVATE_SHARED_LIB_COMPILE_DEFINITIONS}"
|
||||
)
|
||||
set_target_properties(${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX} PROPERTIES
|
||||
APP_NAME "${META_APP_NAME}"
|
||||
VERSION "${META_APP_VERSION}"
|
||||
VERSION "${META_VERSION_MAJOR}.${META_VERSION_MINOR}.${META_VERSION_PATCH}"
|
||||
SOVERSION "${META_SOVERSION}"
|
||||
CXX_STANDARD "${META_CXX_STANDARD}"
|
||||
LINK_SEARCH_START_STATIC ${STATIC_LINKAGE}
|
||||
|
|
Loading…
Reference in New Issue