Skip to content

Commit 2fc54ec

Browse files
authored
Merge pull request #20 from hrittich/tmp
Allow configuration name as prefix
2 parents a9e3d37 + 3730830 commit 2fc54ec

File tree

5 files changed

+26
-17
lines changed

5 files changed

+26
-17
lines changed

cmake/modules/AppTarget.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
140140
get_filename_component(ICON_FILE_EXT "${ICON_FILE}" EXT)
141141
install(
142142
FILES "${ICON_FILE}"
143-
RENAME "${ICON_FILE_NAME}${META_CONFIG_SUFFIX}${ICON_FILE_EXT}"
143+
RENAME "${NAMESPACE_PREFIX}${ICON_FILE_NAME}${META_CONFIG_SUFFIX}${ICON_FILE_EXT}"
144144
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/apps"
145145
COMPONENT desktop)
146146
endforeach ()
@@ -247,7 +247,7 @@ function (add_desktop_file)
247247
DESKTOP_FILE_CMD
248248
"${META_TARGET_NAME}"
249249
DESKTOP_FILE_ICON
250-
"${META_PROJECT_NAME}${META_CONFIG_SUFFIX}"
250+
"${NAMESPACE_PREFIX}${META_PROJECT_NAME}${META_CONFIG_SUFFIX}"
251251
DESKTOP_FILE_ADDITIONAL_ENTRIES
252252
"${DESKTOP_FILE_ADDITIONAL_ENTRIES}")
253253

cmake/modules/BasicConfig.cmake

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,14 @@ if (CONFIGURATION_DISPLAY_NAME)
5959
set(META_APP_NAME "${META_APP_NAME} (${CONFIGURATION_DISPLAY_NAME})")
6060
endif ()
6161

62+
set(NAMESPACE
63+
""
64+
CACHE STRING "adds a prefix to files and folders installed in the OS toplevel")
65+
if (NAMESPACE)
66+
set(NAMESPACE_PREFIX "${NAMESPACE}-")
67+
set(TARGET_PREFIX "${NAMESPACE}-")
68+
endif ()
69+
6270
# allow setting a library/application target suffix - A different configuration name might not require a different target
6371
# name since it might differ anyways (e.g. library extensions for static and shared configuration). Hence there's not simply
6472
# the configuration name used to distinguish targets as well.
@@ -103,8 +111,8 @@ include(GNUInstallDirs)
103111

104112
# define a few variables
105113
set(META_TARGET_NAME "${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}")
106-
set(META_DATA_DIR "${CMAKE_INSTALL_DATAROOTDIR}/${META_PROJECT_NAME}${META_CONFIG_SUFFIX}")
107-
set(META_DATA_DIR_ABSOLUTE "${CMAKE_INSTALL_FULL_DATAROOTDIR}/${META_PROJECT_NAME}${META_CONFIG_SUFFIX}")
114+
set(META_DATA_DIR "${CMAKE_INSTALL_DATAROOTDIR}/${NAMESPACE_PREFIX}${META_PROJECT_NAME}${META_CONFIG_SUFFIX}")
115+
set(META_DATA_DIR_ABSOLUTE "${CMAKE_INSTALL_FULL_DATAROOTDIR}/${NAMESPACE_PREFIX}${META_PROJECT_NAME}${META_CONFIG_SUFFIX}")
108116
string(TOUPPER "${CMAKE_BUILD_TYPE}" META_CURRENT_CONFIGURATION)
109117

110118
# set META_GENERIC_NAME to META_APP_NAME if not specified explicitly

cmake/modules/LibraryTarget.cmake

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ include(TemplateFinder)
3232
# set install destination for the CMake modules, config files and header files
3333
set(INCLUDE_SUBDIR "${CMAKE_INSTALL_INCLUDEDIR}")
3434
set(HEADER_INSTALL_DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
35-
if (META_CONFIG_SUFFIX)
36-
set(INCLUDE_SUBDIR "${INCLUDE_SUBDIR}/${META_PROJECT_NAME}${META_CONFIG_SUFFIX}")
37-
set(HEADER_INSTALL_DESTINATION "${HEADER_INSTALL_DESTINATION}/${META_PROJECT_NAME}${META_CONFIG_SUFFIX}")
35+
if (NAMESPACE_PREFIX OR META_CONFIG_SUFFIX)
36+
set(INCLUDE_SUBDIR "${INCLUDE_SUBDIR}/${NAMESPACE_PREFIX}${META_PROJECT_NAME}${META_CONFIG_SUFFIX}")
37+
set(HEADER_INSTALL_DESTINATION "${HEADER_INSTALL_DESTINATION}/${NAMESPACE_PREFIX}${META_PROJECT_NAME}${META_CONFIG_SUFFIX}")
3838
endif ()
3939
set(CMAKE_MODULE_INSTALL_DESTINATION "${META_DATA_DIR_ABSOLUTE}/cmake/modules")
4040
set(CMAKE_CONFIG_INSTALL_DESTINATION "${META_DATA_DIR_ABSOLUTE}/cmake")
@@ -250,7 +250,7 @@ endforeach ()
250250

251251
# generate CMake code to configure CMake-target to pkg-config module mapping
252252
set(TARGET_TO_PKG_CONFIG_MODULE_NAME_MAPPING
253-
"set(PKG_CONFIG_${META_TARGET_NAME} \"${META_PROJECT_NAME}${META_CONFIG_SUFFIX}\")")
253+
"set(PKG_CONFIG_${META_TARGET_NAME} \"${NAMESPACE_PREFIX}${META_PROJECT_NAME}${META_CONFIG_SUFFIX}\")")
254254
foreach (INTERFACE_REQUIRED_PKG_CONFIG_MODULE ${INTERFACE_REQUIRED_PKG_CONFIG_MODULES})
255255
string(REPLACE "::" "_" INTERFACE_REQUIRED_PKG_CONFIG_MODULE_VARNAME "${INTERFACE_REQUIRED_PKG_CONFIG_MODULE}")
256256
set(TARGET_TO_PKG_CONFIG_MODULE_NAME_MAPPING
@@ -267,8 +267,8 @@ if (INTERFACE_REQUIRED_PKG_CONFIG_MODULES)
267267
list(REMOVE_ITEM INTERFACE_REQUIRED_PKG_CONFIG_MODULES "")
268268
list(REMOVE_DUPLICATES INTERFACE_REQUIRED_PKG_CONFIG_MODULES)
269269
endif ()
270-
set(CONFIG_TARGETS "${CMAKE_CURRENT_BINARY_DIR}/${META_PROJECT_NAME}${META_CONFIG_SUFFIX}Config.cmake")
271-
if (META_CONFIG_SUFFIX)
270+
set(CONFIG_TARGETS "${CMAKE_CURRENT_BINARY_DIR}/${NAMESPACE_PREFIX}${META_PROJECT_NAME}${META_CONFIG_SUFFIX}Config.cmake")
271+
if (NAMESPACE_PREFIX OR META_CONFIG_SUFFIX)
272272
list(APPEND CONFIG_TARGETS "${CMAKE_CURRENT_BINARY_DIR}/${META_PROJECT_NAME}Config.cmake")
273273
endif ()
274274
find_template_file("Config.cmake" CPP_UTILITIES CONFIG_TEMPLATE_FILE)
@@ -279,12 +279,12 @@ foreach (CONFIG_TARGET ${CONFIG_TARGETS})
279279
PATH_VARS CMAKE_MODULE_INSTALL_DESTINATION CMAKE_CONFIG_INSTALL_DESTINATION HEADER_INSTALL_DESTINATION
280280
BIN_INSTALL_DESTINATION LIB_INSTALL_DESTINATION META_DATA_DIR)
281281
endforeach ()
282-
list(APPEND CMAKE_CONFIG_FILES "${CMAKE_CURRENT_BINARY_DIR}/${META_PROJECT_NAME}${META_CONFIG_SUFFIX}Config.cmake"
283-
"${CMAKE_CURRENT_BINARY_DIR}/${META_PROJECT_NAME}${META_CONFIG_SUFFIX}ConfigVersion.cmake")
282+
list(APPEND CMAKE_CONFIG_FILES "${CMAKE_CURRENT_BINARY_DIR}/${NAMESPACE_PREFIX}${META_PROJECT_NAME}${META_CONFIG_SUFFIX}Config.cmake"
283+
"${CMAKE_CURRENT_BINARY_DIR}/${NAMESPACE_PREFIX}${META_PROJECT_NAME}${META_CONFIG_SUFFIX}ConfigVersion.cmake")
284284

285285
# write the CMake version config file
286286
write_basic_package_version_file(
287-
${CMAKE_CURRENT_BINARY_DIR}/${META_PROJECT_NAME}${META_CONFIG_SUFFIX}ConfigVersion.cmake
287+
${CMAKE_CURRENT_BINARY_DIR}/${NAMESPACE_PREFIX}${META_PROJECT_NAME}${META_CONFIG_SUFFIX}ConfigVersion.cmake
288288
VERSION "${META_VERSION_MAJOR}.${META_VERSION_MINOR}.${META_VERSION_PATCH}"
289289
COMPATIBILITY SameMajorVersion)
290290

@@ -402,7 +402,7 @@ if (META_PUBLIC_LIB_DEPENDS_FOR_PC)
402402
endif ()
403403

404404
# compute other values for pkg-config
405-
set(META_PROJECT_NAME_FOR_PC "${META_PROJECT_NAME}${META_CONFIG_SUFFIX}")
405+
set(META_PROJECT_NAME_FOR_PC "${NAMESPACE_PREFIX}${META_PROJECT_NAME}${META_CONFIG_SUFFIX}")
406406
foreach (COMPILE_DEFINITION ${META_PUBLIC_COMPILE_DEFINITIONS})
407407
set(META_COMPILE_DEFINITIONS_FOR_PC "${META_COMPILE_DEFINITIONS_FOR_PC} -D${COMPILE_DEFINITION}")
408408
endforeach ()
@@ -499,14 +499,14 @@ if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
499499
endif ()
500500
install(
501501
TARGETS ${TARGETS_TO_EXPORT}
502-
EXPORT "${META_PROJECT_NAME}${META_CONFIG_SUFFIX}Targets"
502+
EXPORT "${NAMESPACE_PREFIX}${META_PROJECT_NAME}${META_CONFIG_SUFFIX}Targets"
503503
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT binary
504504
LIBRARY DESTINATION ${LIBRARY_DESTINATION} COMPONENT binary
505505
ARCHIVE DESTINATION ${LIBRARY_DESTINATION} COMPONENT binary)
506506
add_dependencies(install-binary "${META_TARGET_NAME}")
507507
add_dependencies(install-binary-strip "${META_TARGET_NAME}")
508508
install(
509-
EXPORT ${META_PROJECT_NAME}${META_CONFIG_SUFFIX}Targets
509+
EXPORT ${NAMESPACE_PREFIX}${META_PROJECT_NAME}${META_CONFIG_SUFFIX}Targets
510510
DESTINATION "${META_DATA_DIR}/cmake"
511511
EXPORT_LINK_INTERFACE_LIBRARIES
512512
COMPONENT cmake-config)

cmake/templates/Config.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ set(@META_PROJECT_VARNAME_UPPER@_QT_RESOURCES @QT_RESOURCES@)
3838
# define additional find_package arguments for required CMake-packages
3939
@ADDITIONAL_ARGUMENTS_FOR_REQUIRED_CMAKE_PACKAGES@
4040
# define library config, add imported target
41-
set(@META_PROJECT_VARNAME_UPPER@_PACKAGE "@META_PROJECT_NAME@@META_CONFIG_SUFFIX@")
41+
set(@META_PROJECT_VARNAME_UPPER@_PACKAGE "@NAMESPACE_PREFIX@@META_PROJECT_NAME@@META_CONFIG_SUFFIX@")
4242
set(@META_PROJECT_VARNAME_UPPER@_LIB "@META_TARGET_NAME@")
4343
set(@META_PROJECT_VARNAME_UPPER@_LIB_IS_SHARED "@BUILD_SHARED_LIBS@")
4444
set(@META_PROJECT_VARNAME_UPPER@_STATIC_LINKAGE "@STATIC_LINKAGE_CONFIGURED@")

cmake/templates/config.h.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#define PROJECT_VARNAME_UPPER "@META_PROJECT_VARNAME_UPPER@"
1010
#define PROJECT_LICENSE "@META_PROJECT_LICENSE@"
1111
#define PROJECT_CONFIG_NAME "@META_CONFIG_NAME@"
12+
#define PROJECT_NAMESPACE "@NAMESPACE_PREFIX@"
1213
#define PROJECT_CONFIG_SUFFIX "@META_CONFIG_SUFFIX@"
1314
#define PROJECT_CONFIG_TARGET_SUFFIX "@TARGET_SUFFIX@"
1415
#define APP_NAME "@META_APP_NAME@"

0 commit comments

Comments
 (0)