Apply cmake-format
This commit is contained in:
parent
c4128799bc
commit
a17f322f3c
|
@ -130,7 +130,6 @@ if (USE_NATIVE_FILE_BUFFER)
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/feature_detection/stdio_filebuf.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/feature_detection/stdio_filebuf.cpp
|
||||||
OUTPUT_VARIABLE GNU_CXX_STDIO_FILEBUF_CHECK_LOG)
|
OUTPUT_VARIABLE GNU_CXX_STDIO_FILEBUF_CHECK_LOG)
|
||||||
|
|
||||||
|
|
||||||
# use __gnu_cxx::stdio_filebuf if available or fallback to boost::iostreams::stream_buffer
|
# use __gnu_cxx::stdio_filebuf if available or fallback to boost::iostreams::stream_buffer
|
||||||
if (GNU_CXX_STDIO_FILEBUF_AVAILABLE AND NOT FORCE_BOOST_IOSTREAMS_FOR_NATIVE_FILE_BUFFER)
|
if (GNU_CXX_STDIO_FILEBUF_AVAILABLE AND NOT FORCE_BOOST_IOSTREAMS_FOR_NATIVE_FILE_BUFFER)
|
||||||
message(STATUS "Using __gnu_cxx::stdio_filebuf for NativeFileStream")
|
message(STATUS "Using __gnu_cxx::stdio_filebuf for NativeFileStream")
|
||||||
|
|
|
@ -16,8 +16,7 @@ macro (restore_default_library_suffixes)
|
||||||
endmacro ()
|
endmacro ()
|
||||||
|
|
||||||
macro (configure_static_library_suffixes)
|
macro (configure_static_library_suffixes)
|
||||||
# allows to look for static libraries in particular
|
# allows to look for static libraries in particular NOTE: code duplicated in Config.cmake.in
|
||||||
# NOTE: code duplicated in Config.cmake.in
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
set(CMAKE_FIND_LIBRARY_SUFFIXES .a .lib)
|
set(CMAKE_FIND_LIBRARY_SUFFIXES .a .lib)
|
||||||
else ()
|
else ()
|
||||||
|
@ -131,7 +130,8 @@ function (use_crypto)
|
||||||
set("${ARGS_LIBRARIES_VARIABLE}" "${${ARGS_LIBRARIES_VARIABLE}};OpenSSL::Crypto" PARENT_SCOPE)
|
set("${ARGS_LIBRARIES_VARIABLE}" "${${ARGS_LIBRARIES_VARIABLE}};OpenSSL::Crypto" PARENT_SCOPE)
|
||||||
set("${ARGS_PACKAGES_VARIABLE}" "${${ARGS_PACKAGES_VARIABLE}};OpenSSL" PARENT_SCOPE)
|
set("${ARGS_PACKAGES_VARIABLE}" "${${ARGS_PACKAGES_VARIABLE}};OpenSSL" PARENT_SCOPE)
|
||||||
if (WIN32 AND OPENSSL_USE_STATIC_LIBS)
|
if (WIN32 AND OPENSSL_USE_STATIC_LIBS)
|
||||||
set("${ARGS_LIBRARIES_VARIABLE}" "${${ARGS_LIBRARIES_VARIABLE}};OpenSSL::Crypto;-lws2_32;-lgdi32;-lcrypt32" PARENT_SCOPE)
|
set("${ARGS_LIBRARIES_VARIABLE}" "${${ARGS_LIBRARIES_VARIABLE}};OpenSSL::Crypto;-lws2_32;-lgdi32;-lcrypt32"
|
||||||
|
PARENT_SCOPE)
|
||||||
endif ()
|
endif ()
|
||||||
set("PKG_CONFIG_OpenSSL_Crypto" "libcrypto" PARENT_SCOPE)
|
set("PKG_CONFIG_OpenSSL_Crypto" "libcrypto" PARENT_SCOPE)
|
||||||
endfunction ()
|
endfunction ()
|
||||||
|
|
|
@ -49,9 +49,7 @@ target_compile_definitions(${META_TARGET_NAME}
|
||||||
"${META_PUBLIC_COMPILE_DEFINITIONS}"
|
"${META_PUBLIC_COMPILE_DEFINITIONS}"
|
||||||
PRIVATE
|
PRIVATE
|
||||||
"${META_PRIVATE_COMPILE_DEFINITIONS}")
|
"${META_PRIVATE_COMPILE_DEFINITIONS}")
|
||||||
target_compile_options(${META_TARGET_NAME}
|
target_compile_options(${META_TARGET_NAME} PUBLIC "${META_PUBLIC_COMPILE_OPTIONS}" PRIVATE "${META_PRIVATE_COMPILE_OPTIONS}")
|
||||||
PUBLIC "${META_PUBLIC_COMPILE_OPTIONS}"
|
|
||||||
PRIVATE "${META_PRIVATE_COMPILE_OPTIONS}")
|
|
||||||
set_target_properties(${META_TARGET_NAME}
|
set_target_properties(${META_TARGET_NAME}
|
||||||
PROPERTIES CXX_STANDARD
|
PROPERTIES CXX_STANDARD
|
||||||
"${META_CXX_STANDARD}"
|
"${META_CXX_STANDARD}"
|
||||||
|
@ -169,13 +167,9 @@ function(add_custom_desktop_file)
|
||||||
DESKTOP_FILE_DESCRIPTION
|
DESKTOP_FILE_DESCRIPTION
|
||||||
DESKTOP_FILE_CATEGORIES
|
DESKTOP_FILE_CATEGORIES
|
||||||
DESKTOP_FILE_CMD
|
DESKTOP_FILE_CMD
|
||||||
DESKTOP_FILE_ICON
|
DESKTOP_FILE_ICON)
|
||||||
)
|
set(MULTI_VALUE_ARGS)
|
||||||
set(MULTI_VALUE_ARGS
|
set(OPTIONAL_ARGS DESKTOP_FILE_ADDITIONAL_ENTRIES)
|
||||||
)
|
|
||||||
set(OPTIONAL_ARGS
|
|
||||||
DESKTOP_FILE_ADDITIONAL_ENTRIES
|
|
||||||
)
|
|
||||||
cmake_parse_arguments(ARGS "${OPTIONAL_ARGS}" "${ONE_VALUE_ARGS}" "${MULTI_VALUE_ARGS}" ${ARGN})
|
cmake_parse_arguments(ARGS "${OPTIONAL_ARGS}" "${ONE_VALUE_ARGS}" "${MULTI_VALUE_ARGS}" ${ARGN})
|
||||||
|
|
||||||
# create desktop file from template
|
# create desktop file from template
|
||||||
|
@ -201,16 +195,22 @@ function(add_desktop_file)
|
||||||
endforeach ()
|
endforeach ()
|
||||||
|
|
||||||
# create desktop file
|
# create desktop file
|
||||||
add_custom_desktop_file(
|
add_custom_desktop_file(FILE_NAME
|
||||||
FILE_NAME "${META_ID}"
|
"${META_ID}"
|
||||||
DESKTOP_FILE_APP_NAME "${META_APP_NAME}"
|
DESKTOP_FILE_APP_NAME
|
||||||
DESKTOP_FILE_GENERIC_NAME "${META_GENERIC_NAME}"
|
"${META_APP_NAME}"
|
||||||
DESKTOP_FILE_DESCRIPTION "${META_APP_DESCRIPTION}"
|
DESKTOP_FILE_GENERIC_NAME
|
||||||
DESKTOP_FILE_CATEGORIES "${META_APP_CATEGORIES}"
|
"${META_GENERIC_NAME}"
|
||||||
DESKTOP_FILE_CMD "${META_TARGET_NAME}"
|
DESKTOP_FILE_DESCRIPTION
|
||||||
DESKTOP_FILE_ICON "${META_PROJECT_NAME}"
|
"${META_APP_DESCRIPTION}"
|
||||||
DESKTOP_FILE_ADDITIONAL_ENTRIES "${DESKTOP_FILE_ADDITIONAL_ENTRIES}"
|
DESKTOP_FILE_CATEGORIES
|
||||||
)
|
"${META_APP_CATEGORIES}"
|
||||||
|
DESKTOP_FILE_CMD
|
||||||
|
"${META_TARGET_NAME}"
|
||||||
|
DESKTOP_FILE_ICON
|
||||||
|
"${META_PROJECT_NAME}"
|
||||||
|
DESKTOP_FILE_ADDITIONAL_ENTRIES
|
||||||
|
"${DESKTOP_FILE_ADDITIONAL_ENTRIES}")
|
||||||
|
|
||||||
# read body for appstream desktop file from resources
|
# read body for appstream desktop file from resources
|
||||||
set(META_APP_APPDATA_BODY_FILE "${CMAKE_CURRENT_SOURCE_DIR}/resources/body.appdata.xml")
|
set(META_APP_APPDATA_BODY_FILE "${CMAKE_CURRENT_SOURCE_DIR}/resources/body.appdata.xml")
|
||||||
|
|
|
@ -32,9 +32,8 @@ if (NOT META_PROJECT_VARNAME_LOWER)
|
||||||
string(TOLOWER "${META_PROJECT_VARNAME_LOWER}" META_PROJECT_VARNAME_LOWER)
|
string(TOLOWER "${META_PROJECT_VARNAME_LOWER}" META_PROJECT_VARNAME_LOWER)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# allow setting a configuration name to allow installing multiple differently configured versions
|
# allow setting a configuration name to allow installing multiple differently configured versions within the same prefix
|
||||||
# within the same prefix (intended to be used for installing Qt 5 and Qt 6 version or shared and
|
# (intended to be used for installing Qt 5 and Qt 6 version or shared and static version within the same prefix)
|
||||||
# static version within the same prefix)
|
|
||||||
set(${META_PROJECT_VARNAME_UPPER}_CONFIGURATION_NAME "" CACHE STRING "sets the configuration name for ${META_PROJECT_NAME}")
|
set(${META_PROJECT_VARNAME_UPPER}_CONFIGURATION_NAME "" CACHE STRING "sets the configuration name for ${META_PROJECT_NAME}")
|
||||||
set(CONFIGURATION_NAME "" CACHE STRING "sets the configuration name for all projects within the current build")
|
set(CONFIGURATION_NAME "" CACHE STRING "sets the configuration name for all projects within the current build")
|
||||||
if (${META_PROJECT_VARNAME_UPPER}_CONFIGURATION_NAME STREQUAL "none")
|
if (${META_PROJECT_VARNAME_UPPER}_CONFIGURATION_NAME STREQUAL "none")
|
||||||
|
@ -49,10 +48,11 @@ if (META_CONFIG_NAME)
|
||||||
set(META_CONFIG_SUFFIX "-${META_CONFIG_NAME}")
|
set(META_CONFIG_SUFFIX "-${META_CONFIG_NAME}")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# allow setting a library/application target suffix - A different configuration name might not require
|
# allow setting a library/application target suffix - A different configuration name might not require a different target
|
||||||
# a different target name since it might differ anyways (e.g. library extensions for static and shared
|
# name since it might differ anyways (e.g. library extensions for static and shared configuration). Hence there's not simply
|
||||||
# configuration). Hence there's not simply the configuration name used to distinguish targets as well.
|
# the configuration name used to distinguish targets as well.
|
||||||
set(${META_PROJECT_VARNAME_UPPER}_CONFIGURATION_TARGET_SUFFIX "" CACHE STRING "sets a target suffix for ${META_PROJECT_NAME}")
|
set(${META_PROJECT_VARNAME_UPPER}_CONFIGURATION_TARGET_SUFFIX ""
|
||||||
|
CACHE STRING "sets a target suffix for ${META_PROJECT_NAME}")
|
||||||
set(CONFIGURATION_TARGET_SUFFIX "" CACHE STRING "sets the target suffix for all projects within the current build")
|
set(CONFIGURATION_TARGET_SUFFIX "" CACHE STRING "sets the target suffix for all projects within the current build")
|
||||||
if (${META_PROJECT_VARNAME_UPPER}_CONFIGURATION_TARGET_SUFFIX STREQUAL "none")
|
if (${META_PROJECT_VARNAME_UPPER}_CONFIGURATION_TARGET_SUFFIX STREQUAL "none")
|
||||||
set(TARGET_SUFFIX "")
|
set(TARGET_SUFFIX "")
|
||||||
|
@ -64,7 +64,7 @@ endif ()
|
||||||
|
|
||||||
# define a few variables
|
# define a few variables
|
||||||
set(META_TARGET_NAME "${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}")
|
set(META_TARGET_NAME "${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}")
|
||||||
SET(META_DATA_DIR "share/${META_PROJECT_NAME}${META_CONFIG_SUFFIX}")
|
set(META_DATA_DIR "share/${META_PROJECT_NAME}${META_CONFIG_SUFFIX}")
|
||||||
string(TOUPPER "${CMAKE_BUILD_TYPE}" META_CURRENT_CONFIGURATION)
|
string(TOUPPER "${CMAKE_BUILD_TYPE}" META_CURRENT_CONFIGURATION)
|
||||||
|
|
||||||
# set META_GENERIC_NAME to META_APP_NAME if not specified explicitely
|
# set META_GENERIC_NAME to META_APP_NAME if not specified explicitely
|
||||||
|
|
|
@ -77,10 +77,7 @@ configure_file("${CONFIG_H_TEMPLATE_FILE}" "${CMAKE_CURRENT_BINARY_DIR}/resource
|
||||||
|
|
||||||
# ensure generated include files can be included via #include "resources/config.h"
|
# ensure generated include files can be included via #include "resources/config.h"
|
||||||
if (NOT META_HEADER_ONLY_LIB)
|
if (NOT META_HEADER_ONLY_LIB)
|
||||||
foreach (TARGET_NAME
|
foreach (TARGET_NAME ${META_TARGET_NAME} ${META_TARGET_NAME}_tests ${META_TARGET_NAME}_testlib)
|
||||||
${META_TARGET_NAME}
|
|
||||||
${META_TARGET_NAME}_tests
|
|
||||||
${META_TARGET_NAME}_testlib)
|
|
||||||
if (TARGET ${TARGET_NAME})
|
if (TARGET ${TARGET_NAME})
|
||||||
target_include_directories(${TARGET_NAME} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
|
target_include_directories(${TARGET_NAME} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
|
@ -27,10 +27,7 @@ else ()
|
||||||
set(HAVE_DOT "NO")
|
set(HAVE_DOT "NO")
|
||||||
endif ()
|
endif ()
|
||||||
if (NOT DOXYGEN_BIN)
|
if (NOT DOXYGEN_BIN)
|
||||||
message(
|
message(WARNING "Doxygen not found, unable to add target for generating API documentation for ${META_TARGET_NAME}")
|
||||||
WARNING
|
|
||||||
"Doxygen not found, unable to add target for generating API documentation for ${META_TARGET_NAME}"
|
|
||||||
)
|
|
||||||
return()
|
return()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
@ -61,8 +58,7 @@ list_to_string(" " "\"${DOXY_PATH_PREFIX}" "\"" "${DOXY_INPUT_FILES}" DOXY_INPUT
|
||||||
configure_file("${DOXYGEN_TEMPLATE_FILE}" "${CMAKE_CURRENT_BINARY_DIR}/doxygen.config")
|
configure_file("${DOXYGEN_TEMPLATE_FILE}" "${CMAKE_CURRENT_BINARY_DIR}/doxygen.config")
|
||||||
|
|
||||||
# add target for generating API documentation
|
# add target for generating API documentation
|
||||||
add_custom_target("${META_TARGET_NAME}_apidoc"
|
add_custom_target("${META_TARGET_NAME}_apidoc" COMMAND "${DOXYGEN_BIN}" "${CMAKE_CURRENT_BINARY_DIR}/doxygen.config")
|
||||||
COMMAND "${DOXYGEN_BIN}" "${CMAKE_CURRENT_BINARY_DIR}/doxygen.config")
|
|
||||||
if (NOT TARGET apidoc)
|
if (NOT TARGET apidoc)
|
||||||
add_custom_target(apidoc)
|
add_custom_target(apidoc)
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -70,10 +66,7 @@ add_dependencies(apidoc "${META_TARGET_NAME}_apidoc")
|
||||||
|
|
||||||
# add install target for API documentation
|
# add install target for API documentation
|
||||||
if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
|
if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
|
||||||
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/api-doc"
|
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/api-doc" DESTINATION "${META_DATA_DIR}" COMPONENT api-doc OPTIONAL)
|
||||||
DESTINATION "${META_DATA_DIR}"
|
|
||||||
COMPONENT api-doc
|
|
||||||
OPTIONAL)
|
|
||||||
if (NOT TARGET install-api-doc)
|
if (NOT TARGET install-api-doc)
|
||||||
add_custom_target(install-api-doc
|
add_custom_target(install-api-doc
|
||||||
COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=api-doc -P
|
COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=api-doc -P
|
||||||
|
@ -81,7 +74,4 @@ if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
message(
|
message(STATUS "Generating target for generating API documentation for ${META_TARGET_NAME} with Doxygen")
|
||||||
STATUS
|
|
||||||
"Generating target for generating API documentation for ${META_TARGET_NAME} with Doxygen"
|
|
||||||
)
|
|
||||||
|
|
|
@ -109,17 +109,14 @@ if (META_HEADER_ONLY_LIB)
|
||||||
add_library(${META_TARGET_NAME} INTERFACE)
|
add_library(${META_TARGET_NAME} INTERFACE)
|
||||||
target_link_libraries(${META_TARGET_NAME}
|
target_link_libraries(${META_TARGET_NAME}
|
||||||
INTERFACE ${META_ADDITIONAL_LINK_FLAGS} "${PUBLIC_LIBRARIES}" "${PRIVATE_LIBRARIES}")
|
INTERFACE ${META_ADDITIONAL_LINK_FLAGS} "${PUBLIC_LIBRARIES}" "${PRIVATE_LIBRARIES}")
|
||||||
target_include_directories(
|
target_include_directories(${META_TARGET_NAME}
|
||||||
${META_TARGET_NAME}
|
|
||||||
INTERFACE $<BUILD_INTERFACE:${TARGET_INCLUDE_DIRECTORY_BUILD_INTERFACE}>
|
INTERFACE $<BUILD_INTERFACE:${TARGET_INCLUDE_DIRECTORY_BUILD_INTERFACE}>
|
||||||
$<INSTALL_INTERFACE:${HEADER_INSTALL_DESTINATION}> ${PUBLIC_INCLUDE_DIRS})
|
$<INSTALL_INTERFACE:${HEADER_INSTALL_DESTINATION}> ${PUBLIC_INCLUDE_DIRS})
|
||||||
target_compile_definitions(${META_TARGET_NAME}
|
target_compile_definitions(${META_TARGET_NAME}
|
||||||
INTERFACE
|
INTERFACE
|
||||||
"${META_PUBLIC_COMPILE_DEFINITIONS}"
|
"${META_PUBLIC_COMPILE_DEFINITIONS}"
|
||||||
"${META_PRIVATE_COMPILE_DEFINITIONS}")
|
"${META_PRIVATE_COMPILE_DEFINITIONS}")
|
||||||
target_compile_options(${META_TARGET_NAME}
|
target_compile_options(${META_TARGET_NAME} INTERFACE "${META_PUBLIC_COMPILE_OPTIONS}" "${META_PRIVATE_COMPILE_OPTIONS}")
|
||||||
INTERFACE "${META_PUBLIC_COMPILE_OPTIONS}"
|
|
||||||
"${META_PRIVATE_COMPILE_OPTIONS}")
|
|
||||||
else ()
|
else ()
|
||||||
add_library(${META_TARGET_NAME} ${META_LIBRARY_TYPE} ${ALL_FILES})
|
add_library(${META_TARGET_NAME} ${META_LIBRARY_TYPE} ${ALL_FILES})
|
||||||
target_link_libraries(${META_TARGET_NAME}
|
target_link_libraries(${META_TARGET_NAME}
|
||||||
|
@ -161,7 +158,14 @@ endforeach ()
|
||||||
# populate META_PRIVATE_LIB_DEPENDS (only required when building static libraries)
|
# populate META_PRIVATE_LIB_DEPENDS (only required when building static libraries)
|
||||||
if (NOT BUILD_SHARED_LIBS)
|
if (NOT BUILD_SHARED_LIBS)
|
||||||
foreach (DEPENDENCY ${PRIVATE_LIBRARIES})
|
foreach (DEPENDENCY ${PRIVATE_LIBRARIES})
|
||||||
if (NOT "${DEPENDENCY}" IN_LIST META_PUBLIC_LIB_DEPENDS AND NOT "${DEPENDENCY}" IN_LIST META_PRIVATE_LIB_DEPENDS)
|
if (NOT
|
||||||
|
"${DEPENDENCY}"
|
||||||
|
IN_LIST
|
||||||
|
META_PUBLIC_LIB_DEPENDS
|
||||||
|
AND NOT
|
||||||
|
"${DEPENDENCY}"
|
||||||
|
IN_LIST
|
||||||
|
META_PRIVATE_LIB_DEPENDS)
|
||||||
list(APPEND META_PRIVATE_LIB_DEPENDS ${DEPENDENCY})
|
list(APPEND META_PRIVATE_LIB_DEPENDS ${DEPENDENCY})
|
||||||
endif ()
|
endif ()
|
||||||
endforeach ()
|
endforeach ()
|
||||||
|
@ -182,8 +186,7 @@ if (META_HEADER_ONLY_LIB)
|
||||||
INTERFACE
|
INTERFACE
|
||||||
"${META_PUBLIC_LIB_COMPILE_DEFINITIONS}"
|
"${META_PUBLIC_LIB_COMPILE_DEFINITIONS}"
|
||||||
"${META_PRIVATE_LIB_COMPILE_DEFINITIONS}")
|
"${META_PRIVATE_LIB_COMPILE_DEFINITIONS}")
|
||||||
target_compile_options(
|
target_compile_options(${META_TARGET_NAME}_interface_sources_for_qtcreator
|
||||||
${META_TARGET_NAME}_interface_sources_for_qtcreator
|
|
||||||
INTERFACE "${META_PUBLIC_LIB_COMPILE_OPTIONS}" "${META_PRIVATE_LIB_COMPILE_OPTIONS}")
|
INTERFACE "${META_PUBLIC_LIB_COMPILE_OPTIONS}" "${META_PRIVATE_LIB_COMPILE_OPTIONS}")
|
||||||
set_target_properties(${META_TARGET_NAME}_interface_sources_for_qtcreator
|
set_target_properties(${META_TARGET_NAME}_interface_sources_for_qtcreator
|
||||||
PROPERTIES VERSION
|
PROPERTIES VERSION
|
||||||
|
@ -247,9 +250,11 @@ macro (compute_dependencies_for_package_config DEPENDS OUTPUT_VAR_PKGS OUTPUT_VA
|
||||||
continue()
|
continue()
|
||||||
endif ()
|
endif ()
|
||||||
if (META_CURRENT_CONFIGURATION)
|
if (META_CURRENT_CONFIGURATION)
|
||||||
get_target_property("${DEPENDENCY_VARNAME}_IMPORTED_LOCATION_${META_CURRENT_CONFIGURATION}" "${DEPENDENCY}" "IMPORTED_LOCATION_${META_CURRENT_CONFIGURATION}")
|
get_target_property("${DEPENDENCY_VARNAME}_IMPORTED_LOCATION_${META_CURRENT_CONFIGURATION}" "${DEPENDENCY}"
|
||||||
|
"IMPORTED_LOCATION_${META_CURRENT_CONFIGURATION}")
|
||||||
if (EXISTS "${${DEPENDENCY_VARNAME}_IMPORTED_LOCATION_${META_CURRENT_CONFIGURATION}}")
|
if (EXISTS "${${DEPENDENCY_VARNAME}_IMPORTED_LOCATION_${META_CURRENT_CONFIGURATION}}")
|
||||||
set(${OUTPUT_VAR_LIBS} "${${OUTPUT_VAR_LIBS}} ${${DEPENDENCY_VARNAME}_IMPORTED_LOCATION_${META_CURRENT_CONFIGURATION}}")
|
set(${OUTPUT_VAR_LIBS}
|
||||||
|
"${${OUTPUT_VAR_LIBS}} ${${DEPENDENCY_VARNAME}_IMPORTED_LOCATION_${META_CURRENT_CONFIGURATION}}")
|
||||||
continue()
|
continue()
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -267,8 +272,7 @@ endmacro ()
|
||||||
compute_dependencies_for_package_config(META_PUBLIC_LIB_DEPENDS META_PUBLIC_PC_PKGS META_PUBLIC_LIB_DEPENDS_FOR_PC)
|
compute_dependencies_for_package_config(META_PUBLIC_LIB_DEPENDS META_PUBLIC_PC_PKGS META_PUBLIC_LIB_DEPENDS_FOR_PC)
|
||||||
compute_dependencies_for_package_config(META_PRIVATE_LIB_DEPENDS META_PRIVATE_PC_PKGS META_PRIVATE_LIB_DEPENDS_FOR_PC)
|
compute_dependencies_for_package_config(META_PRIVATE_LIB_DEPENDS META_PRIVATE_PC_PKGS META_PRIVATE_LIB_DEPENDS_FOR_PC)
|
||||||
if (NOT META_HEADER_ONLY_LIB)
|
if (NOT META_HEADER_ONLY_LIB)
|
||||||
set(META_PUBLIC_LIB_DEPENDS_FOR_PC
|
set(META_PUBLIC_LIB_DEPENDS_FOR_PC " -l${META_TARGET_NAME}${META_PUBLIC_LIB_DEPENDS_FOR_PC}")
|
||||||
" -l${META_TARGET_NAME}${META_PUBLIC_LIB_DEPENDS_FOR_PC}")
|
|
||||||
endif ()
|
endif ()
|
||||||
if (META_PUBLIC_LIB_DEPENDS_FOR_PC)
|
if (META_PUBLIC_LIB_DEPENDS_FOR_PC)
|
||||||
set(META_PUBLIC_LIB_DEPENDS_FOR_PC " -L\${libdir}${META_PUBLIC_LIB_DEPENDS_FOR_PC}")
|
set(META_PUBLIC_LIB_DEPENDS_FOR_PC " -L\${libdir}${META_PUBLIC_LIB_DEPENDS_FOR_PC}")
|
||||||
|
@ -331,7 +335,10 @@ if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
|
||||||
set(LIBRARY_DESTINATION ${QT_INSTALL_PLUGINS})
|
set(LIBRARY_DESTINATION ${QT_INSTALL_PLUGINS})
|
||||||
else ()
|
else ()
|
||||||
set(LIBRARY_DESTINATION lib${SELECTED_LIB_SUFFIX}/qt/plugins)
|
set(LIBRARY_DESTINATION lib${SELECTED_LIB_SUFFIX}/qt/plugins)
|
||||||
message(WARNING "Unable to detect appropriate install directory for Qt plugins (assuming \"${LIBRARY_DESTINATION}\").")
|
message(
|
||||||
|
WARNING
|
||||||
|
"Unable to detect appropriate install directory for Qt plugins (assuming \"${LIBRARY_DESTINATION}\")."
|
||||||
|
)
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
if (META_PLUGIN_CATEGORY)
|
if (META_PLUGIN_CATEGORY)
|
||||||
|
@ -358,7 +365,9 @@ if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
|
||||||
if (NOT META_IS_PLUGIN)
|
if (NOT META_IS_PLUGIN)
|
||||||
foreach (HEADER_FILE ${HEADER_FILES} ${ADDITIONAL_HEADER_FILES})
|
foreach (HEADER_FILE ${HEADER_FILES} ${ADDITIONAL_HEADER_FILES})
|
||||||
get_filename_component(HEADER_DIR "${HEADER_FILE}" DIRECTORY)
|
get_filename_component(HEADER_DIR "${HEADER_FILE}" DIRECTORY)
|
||||||
install(FILES "${HEADER_FILE}" DESTINATION "${INCLUDE_SUBDIR}/${META_PROJECT_NAME}/${HEADER_DIR}" COMPONENT header)
|
install(FILES "${HEADER_FILE}"
|
||||||
|
DESTINATION "${INCLUDE_SUBDIR}/${META_PROJECT_NAME}/${HEADER_DIR}"
|
||||||
|
COMPONENT header)
|
||||||
endforeach ()
|
endforeach ()
|
||||||
if (NOT TARGET install-header)
|
if (NOT TARGET install-header)
|
||||||
add_custom_target(install-header
|
add_custom_target(install-header
|
||||||
|
@ -370,9 +379,7 @@ if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
|
||||||
# add install target for CMake modules
|
# add install target for CMake modules
|
||||||
foreach (CMAKE_MODULE_FILE ${CMAKE_MODULE_FILES})
|
foreach (CMAKE_MODULE_FILE ${CMAKE_MODULE_FILES})
|
||||||
get_filename_component(CMAKE_MODULE_DIR ${CMAKE_MODULE_FILE} DIRECTORY)
|
get_filename_component(CMAKE_MODULE_DIR ${CMAKE_MODULE_FILE} DIRECTORY)
|
||||||
install(FILES ${CMAKE_MODULE_FILE}
|
install(FILES ${CMAKE_MODULE_FILE} DESTINATION ${META_DATA_DIR}/${CMAKE_MODULE_DIR} COMPONENT cmake-modules)
|
||||||
DESTINATION ${META_DATA_DIR}/${CMAKE_MODULE_DIR}
|
|
||||||
COMPONENT cmake-modules)
|
|
||||||
endforeach ()
|
endforeach ()
|
||||||
if (NOT TARGET install-cmake-modules)
|
if (NOT TARGET install-cmake-modules)
|
||||||
add_custom_target(install-cmake-modules
|
add_custom_target(install-cmake-modules
|
||||||
|
@ -383,9 +390,7 @@ if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
|
||||||
# add install target for CMake templates
|
# add install target for CMake templates
|
||||||
foreach (CMAKE_TEMPLATE_FILE ${CMAKE_TEMPLATE_FILES})
|
foreach (CMAKE_TEMPLATE_FILE ${CMAKE_TEMPLATE_FILES})
|
||||||
get_filename_component(CMAKE_TEMPLATE_DIR ${CMAKE_TEMPLATE_FILE} DIRECTORY)
|
get_filename_component(CMAKE_TEMPLATE_DIR ${CMAKE_TEMPLATE_FILE} DIRECTORY)
|
||||||
install(FILES ${CMAKE_TEMPLATE_FILE}
|
install(FILES ${CMAKE_TEMPLATE_FILE} DESTINATION ${META_DATA_DIR}/${CMAKE_TEMPLATE_DIR} COMPONENT cmake-templates)
|
||||||
DESTINATION ${META_DATA_DIR}/${CMAKE_TEMPLATE_DIR}
|
|
||||||
COMPONENT cmake-templates)
|
|
||||||
endforeach ()
|
endforeach ()
|
||||||
if (NOT TARGET install-cmake-templates)
|
if (NOT TARGET install-cmake-templates)
|
||||||
add_custom_target(install-cmake-templates
|
add_custom_target(install-cmake-templates
|
||||||
|
@ -422,26 +427,17 @@ if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
|
||||||
if (BUILD_SHARED_LIBS AND NOT META_HEADER_ONLY_LIB)
|
if (BUILD_SHARED_LIBS AND NOT META_HEADER_ONLY_LIB)
|
||||||
add_custom_target(
|
add_custom_target(
|
||||||
install-${META_TARGET_NAME}-mingw-w64-importlib-strip
|
install-${META_TARGET_NAME}-mingw-w64-importlib-strip
|
||||||
COMMAND
|
COMMAND "${STRIP_BINARY_PATH}" -g
|
||||||
"${STRIP_BINARY_PATH}" -g
|
"\$\{DESTDIR\}\$\{DESTDIR:+/\}${CMAKE_INSTALL_PREFIX}/lib/lib${META_TARGET_NAME}.dll.a")
|
||||||
"\$\{DESTDIR\}\$\{DESTDIR:+/\}${CMAKE_INSTALL_PREFIX}/lib/lib${META_TARGET_NAME}.dll.a"
|
add_dependencies(install-${META_TARGET_NAME}-mingw-w64-importlib-strip install-binary-strip)
|
||||||
)
|
add_dependencies(install-mingw-w64-strip install-${META_TARGET_NAME}-mingw-w64-importlib-strip)
|
||||||
add_dependencies(install-${META_TARGET_NAME}-mingw-w64-importlib-strip
|
|
||||||
install-binary-strip)
|
|
||||||
add_dependencies(install-mingw-w64-strip
|
|
||||||
install-${META_TARGET_NAME}-mingw-w64-importlib-strip)
|
|
||||||
endif ()
|
endif ()
|
||||||
if (BUILD_STATIC_LIBS AND NOT META_HEADER_ONLY_LIB)
|
if (BUILD_STATIC_LIBS AND NOT META_HEADER_ONLY_LIB)
|
||||||
add_custom_target(
|
add_custom_target(install-${META_TARGET_NAME}-mingw-w64-staticlib-strip
|
||||||
install-${META_TARGET_NAME}-mingw-w64-staticlib-strip
|
COMMAND "${STRIP_BINARY_PATH}" -g
|
||||||
COMMAND
|
"\$\{DESTDIR\}\$\{DESTDIR:+/\}${CMAKE_INSTALL_PREFIX}/lib/lib${META_TARGET_NAME}.a")
|
||||||
"${STRIP_BINARY_PATH}" -g
|
add_dependencies(install-${META_TARGET_NAME}-mingw-w64-staticlib-strip install-binary-strip)
|
||||||
"\$\{DESTDIR\}\$\{DESTDIR:+/\}${CMAKE_INSTALL_PREFIX}/lib/lib${META_TARGET_NAME}.a"
|
add_dependencies(install-mingw-w64-strip install-${META_TARGET_NAME}-mingw-w64-staticlib-strip)
|
||||||
)
|
|
||||||
add_dependencies(install-${META_TARGET_NAME}-mingw-w64-staticlib-strip
|
|
||||||
install-binary-strip)
|
|
||||||
add_dependencies(install-mingw-w64-strip
|
|
||||||
install-${META_TARGET_NAME}-mingw-w64-staticlib-strip)
|
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
|
@ -81,10 +81,7 @@ if (EXCLUDE_TESTS_FROM_ALL)
|
||||||
else ()
|
else ()
|
||||||
unset(TESTS_EXCLUSION)
|
unset(TESTS_EXCLUSION)
|
||||||
endif ()
|
endif ()
|
||||||
add_executable(${META_TARGET_NAME}_tests
|
add_executable(${META_TARGET_NAME}_tests ${TESTS_EXCLUSION} ${TEST_HEADER_FILES} ${TEST_SRC_FILES})
|
||||||
${TESTS_EXCLUSION}
|
|
||||||
${TEST_HEADER_FILES}
|
|
||||||
${TEST_SRC_FILES})
|
|
||||||
|
|
||||||
# add top-level target to build all test targets conveniently, also when excluded from "all" target
|
# add top-level target to build all test targets conveniently, also when excluded from "all" target
|
||||||
if (NOT TARGET tests)
|
if (NOT TARGET tests)
|
||||||
|
@ -141,8 +138,7 @@ if (META_PROJECT_IS_APPLICATION)
|
||||||
# link tests against it
|
# link tests against it
|
||||||
list(APPEND TEST_LIBRARIES ${META_TARGET_NAME}_testlib)
|
list(APPEND TEST_LIBRARIES ${META_TARGET_NAME}_testlib)
|
||||||
# ensure all symbols are visible (man gcc: "Despite the nomenclature, default always means public")
|
# ensure all symbols are visible (man gcc: "Despite the nomenclature, default always means public")
|
||||||
set_target_properties(${META_TARGET_NAME}_testlib
|
set_target_properties(${META_TARGET_NAME}_testlib PROPERTIES CXX_VISIBILITY_PRESET default)
|
||||||
PROPERTIES CXX_VISIBILITY_PRESET default)
|
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
@ -184,23 +180,16 @@ endif ()
|
||||||
# enable source code based coverage analysis using clang
|
# enable source code based coverage analysis using clang
|
||||||
if (CLANG_SOURCE_BASED_COVERAGE_AVAILABLE)
|
if (CLANG_SOURCE_BASED_COVERAGE_AVAILABLE)
|
||||||
# define path of raw profile data
|
# define path of raw profile data
|
||||||
set(LLVM_PROFILE_RAW_FILE
|
set(LLVM_PROFILE_RAW_FILE "${CMAKE_CURRENT_BINARY_DIR}/${META_TARGET_NAME}_tests.profraw")
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/${META_TARGET_NAME}_tests.profraw")
|
|
||||||
# define path of list with additional raw profile data from fork processes spawned during tests
|
# define path of list with additional raw profile data from fork processes spawned during tests
|
||||||
set(LLVM_PROFILE_RAW_LIST_FILE
|
set(LLVM_PROFILE_RAW_LIST_FILE "${CMAKE_CURRENT_BINARY_DIR}/${META_TARGET_NAME}_tests.profraw.list")
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/${META_TARGET_NAME}_tests.profraw.list")
|
|
||||||
# define path of merged profile data generated from raw profiling data
|
# define path of merged profile data generated from raw profiling data
|
||||||
set(LLVM_PROFILE_DATA_FILE
|
set(LLVM_PROFILE_DATA_FILE "${CMAKE_CURRENT_BINARY_DIR}/${META_TARGET_NAME}_tests.profdata")
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/${META_TARGET_NAME}_tests.profdata")
|
|
||||||
# define paths of output files
|
# define paths of output files
|
||||||
set(COVERAGE_REPORT_FILE
|
set(COVERAGE_REPORT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${META_TARGET_NAME}_tests_coverage.txt")
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/${META_TARGET_NAME}_tests_coverage.txt")
|
set(COVERAGE_PER_FILE_REPORT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${META_TARGET_NAME}_tests_coverage_per_file.txt")
|
||||||
set(COVERAGE_PER_FILE_REPORT_FILE
|
set(COVERAGE_OVERALL_REPORT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${META_TARGET_NAME}_tests_coverage_overall.txt")
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/${META_TARGET_NAME}_tests_coverage_per_file.txt")
|
set(COVERAGE_HTML_REPORT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${META_TARGET_NAME}_tests_coverage.html")
|
||||||
set(COVERAGE_OVERALL_REPORT_FILE
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/${META_TARGET_NAME}_tests_coverage_overall.txt")
|
|
||||||
set(COVERAGE_HTML_REPORT_FILE
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/${META_TARGET_NAME}_tests_coverage.html")
|
|
||||||
set(COVERAGE_REPORT_FILES "${COVERAGE_REPORT_FILE}")
|
set(COVERAGE_REPORT_FILES "${COVERAGE_REPORT_FILE}")
|
||||||
|
|
||||||
# specify where to store raw clang profiling data via environment variable
|
# specify where to store raw clang profiling data via environment variable
|
||||||
|
@ -215,12 +204,10 @@ if (CLANG_SOURCE_BASED_COVERAGE_AVAILABLE)
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT "${LLVM_PROFILE_RAW_FILE}" "${LLVM_PROFILE_RAW_LIST_FILE}"
|
OUTPUT "${LLVM_PROFILE_RAW_FILE}" "${LLVM_PROFILE_RAW_LIST_FILE}"
|
||||||
COMMAND "${CMAKE_COMMAND}" -E env "LLVM_PROFILE_FILE=${LLVM_PROFILE_RAW_FILE}"
|
COMMAND "${CMAKE_COMMAND}" -E env "LLVM_PROFILE_FILE=${LLVM_PROFILE_RAW_FILE}"
|
||||||
"LLVM_PROFILE_LIST_FILE=${LLVM_PROFILE_RAW_LIST_FILE}"
|
"LLVM_PROFILE_LIST_FILE=${LLVM_PROFILE_RAW_LIST_FILE}" $<TARGET_FILE:${META_TARGET_NAME}_tests> -p
|
||||||
$<TARGET_FILE:${META_TARGET_NAME}_tests> -p
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/testfiles" -w "${CMAKE_CURRENT_BINARY_DIR}/testworkingdir"
|
"${CMAKE_CURRENT_SOURCE_DIR}/testfiles" -w "${CMAKE_CURRENT_BINARY_DIR}/testworkingdir"
|
||||||
${RUN_TESTS_APPLICATION_ARGS}
|
${RUN_TESTS_APPLICATION_ARGS}
|
||||||
COMMENT
|
COMMENT "Executing ${META_TARGET_NAME}_tests to generate raw profiling data for source-based coverage report"
|
||||||
"Executing ${META_TARGET_NAME}_tests to generate raw profiling data for source-based coverage report"
|
|
||||||
DEPENDS "${META_TARGET_NAME}_tests")
|
DEPENDS "${META_TARGET_NAME}_tests")
|
||||||
|
|
||||||
# add commands for processing raw profiling data
|
# add commands for processing raw profiling data
|
||||||
|
@ -250,8 +237,7 @@ if (CLANG_SOURCE_BASED_COVERAGE_AVAILABLE)
|
||||||
|
|
||||||
# determine the target file for llvm-cov
|
# determine the target file for llvm-cov
|
||||||
if (NOT META_HEADER_ONLY_LIB)
|
if (NOT META_HEADER_ONLY_LIB)
|
||||||
set(LLVM_COV_TARGET_FILE $<TARGET_FILE:${META_TARGET_NAME}>
|
set(LLVM_COV_TARGET_FILE $<TARGET_FILE:${META_TARGET_NAME}> $<TARGET_FILE:${META_TARGET_NAME}_tests>)
|
||||||
$<TARGET_FILE:${META_TARGET_NAME}_tests>)
|
|
||||||
else ()
|
else ()
|
||||||
set(LLVM_COV_TARGET_FILE $<TARGET_FILE:${META_TARGET_NAME}_tests>)
|
set(LLVM_COV_TARGET_FILE $<TARGET_FILE:${META_TARGET_NAME}_tests>)
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -286,11 +272,10 @@ if (CLANG_SOURCE_BASED_COVERAGE_AVAILABLE)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# add target for the coverage reports
|
# add target for the coverage reports
|
||||||
add_custom_target("${META_TARGET_NAME}_tests_coverage_summary"
|
add_custom_target("${META_TARGET_NAME}_tests_coverage_summary" DEPENDS ${COVERAGE_REPORT_FILES})
|
||||||
DEPENDS ${COVERAGE_REPORT_FILES})
|
|
||||||
|
|
||||||
# NOTE: Those commands have been added before the release of LLVM 5 where coverage reports
|
# NOTE: Those commands have been added before the release of LLVM 5 where coverage reports with statistics per file
|
||||||
# with statistics per file could not be generated.
|
# could not be generated.
|
||||||
|
|
||||||
# generate coverage overall report (total region/line coverage)
|
# generate coverage overall report (total region/line coverage)
|
||||||
set(OVERALL_COVERAGE_AKW_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/tests/calculateoverallcoverage.awk")
|
set(OVERALL_COVERAGE_AKW_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/tests/calculateoverallcoverage.awk")
|
||||||
|
@ -305,8 +290,7 @@ if (CLANG_SOURCE_BASED_COVERAGE_AVAILABLE)
|
||||||
"${COVERAGE_OVERALL_REPORT_FILE}"
|
"${COVERAGE_OVERALL_REPORT_FILE}"
|
||||||
COMMENT "Generating coverage report (overall figures)"
|
COMMENT "Generating coverage report (overall figures)"
|
||||||
DEPENDS "${OVERALL_COVERAGE_AKW_SCRIPT}" "${COVERAGE_REPORT_FILE}")
|
DEPENDS "${OVERALL_COVERAGE_AKW_SCRIPT}" "${COVERAGE_REPORT_FILE}")
|
||||||
add_custom_target("${META_TARGET_NAME}_tests_coverage_overall_summary"
|
add_custom_target("${META_TARGET_NAME}_tests_coverage_overall_summary" DEPENDS "${COVERAGE_OVERALL_REPORT_FILE}")
|
||||||
DEPENDS "${COVERAGE_OVERALL_REPORT_FILE}")
|
|
||||||
|
|
||||||
# generate HTML document showing covered/uncovered code
|
# generate HTML document showing covered/uncovered code
|
||||||
add_custom_command(OUTPUT "${COVERAGE_HTML_REPORT_FILE}"
|
add_custom_command(OUTPUT "${COVERAGE_HTML_REPORT_FILE}"
|
||||||
|
@ -316,8 +300,7 @@ if (CLANG_SOURCE_BASED_COVERAGE_AVAILABLE)
|
||||||
COMMENT "Generating HTML document showing covered/uncovered code"
|
COMMENT "Generating HTML document showing covered/uncovered code"
|
||||||
DEPENDS "${LLVM_PROFILE_DATA_FILE}"
|
DEPENDS "${LLVM_PROFILE_DATA_FILE}"
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
|
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||||
add_custom_target("${META_TARGET_NAME}_tests_coverage_html"
|
add_custom_target("${META_TARGET_NAME}_tests_coverage_html" DEPENDS "${COVERAGE_HTML_REPORT_FILE}")
|
||||||
DEPENDS "${COVERAGE_HTML_REPORT_FILE}")
|
|
||||||
|
|
||||||
# create target for all coverage docs
|
# create target for all coverage docs
|
||||||
add_custom_target("${META_TARGET_NAME}_tests_coverage"
|
add_custom_target("${META_TARGET_NAME}_tests_coverage"
|
||||||
|
|
Loading…
Reference in New Issue