Fix minor issues in build scripts
This commit is contained in:
parent
00f7795dcd
commit
4d0807de9b
|
@ -132,11 +132,11 @@ endfunction()
|
|||
# convenience function to add *.desktop file from project meta data
|
||||
function(add_desktop_file)
|
||||
add_custom_desktop_file(
|
||||
"${TARGET_EXECUTABLE}"
|
||||
"${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}"
|
||||
"${META_APP_NAME}"
|
||||
"${META_APP_DESCRIPTION}"
|
||||
"${META_APP_CATEGORIES}"
|
||||
"${META_PROJECT_NAME}"
|
||||
"${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}"
|
||||
"${META_PROJECT_NAME}"
|
||||
)
|
||||
endfunction()
|
||||
|
|
|
@ -3,12 +3,20 @@
|
|||
# set project name (displayed in Qt Creator)
|
||||
project(${META_PROJECT_NAME})
|
||||
|
||||
# set META_PROJECT_VARNAME and META_PROJECT_VARNAME_UPPER if not specified explicitely
|
||||
if(NOT META_PROJECT_VARNAME)
|
||||
set(META_PROJECT_VARNAME ${META_PROJECT_NAME})
|
||||
endif()
|
||||
if(NOT META_PROJECT_VARNAME_UPPER)
|
||||
string(TOUPPER ${META_PROJECT_VARNAME} META_PROJECT_VARNAME_UPPER)
|
||||
endif()
|
||||
|
||||
# provide variables for other projects built as part of the same subdirs project
|
||||
# to access files from this project
|
||||
get_directory_property(HAS_PARENT PARENT_DIRECTORY)
|
||||
if(HAS_PARENT)
|
||||
set(${META_PROJECT_VARNAME}_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" PARENT_SCOPE)
|
||||
set(${META_PROJECT_VARNAME}_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}" PARENT_SCOPE)
|
||||
set(${META_PROJECT_VARNAME_UPPER}_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" PARENT_SCOPE)
|
||||
set(${META_PROJECT_VARNAME_UPPER}_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}" PARENT_SCOPE)
|
||||
set(${META_PROJECT_NAME}_DIR "${CMAKE_CURRENT_BINARY_DIR}" PARENT_SCOPE)
|
||||
if(CMAKE_FIND_ROOT_PATH AND MINGW)
|
||||
set(RUNTIME_LIBRARY_PATH "${CMAKE_CURRENT_BINARY_DIR}" ${RUNTIME_LIBRARY_PATH} PARENT_SCOPE)
|
||||
|
@ -24,14 +32,6 @@ set(META_APP_URL_STR "\"${META_APP_URL}\"")
|
|||
set(META_APP_DESCRIPTION_STR "\"${META_APP_DESCRIPTION}\"")
|
||||
set(META_APP_VERSION_STR "\"${META_APP_VERSION}\"")
|
||||
|
||||
# set META_PROJECT_VARNAME and META_PROJECT_VARNAME_UPPER if not specified explicitely
|
||||
if(NOT META_PROJECT_VARNAME)
|
||||
set(META_PROJECT_VARNAME ${META_PROJECT_NAME})
|
||||
endif()
|
||||
if(NOT META_PROJECT_VARNAME_UPPER)
|
||||
string(TOUPPER ${META_PROJECT_VARNAME} META_PROJECT_VARNAME_UPPER)
|
||||
endif()
|
||||
|
||||
# set TARGET_EXECUTABLE which is used to refer to the target executable at its installation location
|
||||
set(TARGET_EXECUTABLE "${CMAKE_INSTALL_PREFIX}/bin/${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}")
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
option(NO_DOXYGEN "whether creation of Doxygen targets is disabled (enabled by default)" OFF)
|
||||
|
||||
if(NOT NO_DOXYGEN)
|
||||
# find doxygen.h template
|
||||
include(TemplateFinder)
|
||||
find_template_file("doxygen" CPP_UTILITIES DOXYGEN_TEMPLATE_FILE)
|
||||
|
@ -19,7 +22,7 @@ else()
|
|||
endif()
|
||||
|
||||
if(NOT DOXYGEN_BIN)
|
||||
message(WARNING "Doxygen not found, unable to add target for generating API documentation.")
|
||||
message(WARNING "Doxygen not found, unable to add target for generating API documentation for ${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}")
|
||||
else()
|
||||
# load cached configuration and other variables
|
||||
set(DOXY_LANGUAGE "English" CACHE STRING "specifies the language of the API documentation generated with Doxygen")
|
||||
|
@ -41,7 +44,7 @@ else()
|
|||
)
|
||||
|
||||
# add target for generating API documentation
|
||||
add_custom_target(${META_PROJECT_NAME}_apidoc
|
||||
add_custom_target(${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}_apidoc
|
||||
COMMAND "${DOXYGEN_BIN}" "${CMAKE_CURRENT_BINARY_DIR}/doxygen.config"
|
||||
SOURCES ${DOXY_INPUT_FILES}
|
||||
)
|
||||
|
@ -59,4 +62,7 @@ else()
|
|||
)
|
||||
endif()
|
||||
|
||||
message(STATUS "Generating target for generating API documentation for ${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX} with Doxygen")
|
||||
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
@ -2,11 +2,6 @@ option(SHELL_COMPLETION_ENABLED "controls whether shell completion is enabled in
|
|||
option(BASH_COMPLETION_ENABLED "controls whether shell completion for bash is enabled" ON)
|
||||
|
||||
if(SHELL_COMPLETION_ENABLED)
|
||||
|
||||
if(NOT COMPLETION_META_PROJECT_NAME)
|
||||
set(COMPLETION_META_PROJECT_NAME ${META_PROJECT_NAME})
|
||||
endif()
|
||||
|
||||
# add bash completion (currently the only supported shell completion)
|
||||
if(BASH_COMPLETION_ENABLED)
|
||||
# find bash-completion.sh template
|
||||
|
@ -33,5 +28,4 @@ if(SHELL_COMPLETION_ENABLED)
|
|||
|
||||
message(STATUS "Generating files for bash completion.")
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
@PACKAGE_INIT@
|
||||
|
||||
set(@META_PROJECT_VARNAME_UPPER@_HAS_SHARED_LIB "@BUILD_SHARED_LIBS@")
|
||||
set(@META_PROJECT_VARNAME_UPPER@_SHARED_LIB "@META_PROJECT_NAME@")
|
||||
set(@META_PROJECT_VARNAME_UPPER@_SHARED_LIB "@TARGET_PREFIX@@META_PROJECT_NAME@@TARGET_SUFFIX@")
|
||||
set(@META_PROJECT_VARNAME_UPPER@_SHARED_LIB_COMPILE_DEFINITIONS @META_SHARED_LIB_COMPILE_DEFINITIONS@)
|
||||
set(@META_PROJECT_VARNAME_UPPER@_HAS_STATIC_LIB "@BUILD_STATIC_LIBS@")
|
||||
set(@META_PROJECT_VARNAME_UPPER@_STATIC_LIB "@META_PROJECT_NAME@.a")
|
||||
set(@META_PROJECT_VARNAME_UPPER@_STATIC_LIB "@TARGET_PREFIX@@META_PROJECT_NAME@@TARGET_SUFFIX@.a")
|
||||
set(@META_PROJECT_VARNAME_UPPER@_STATIC_LIB_DEPENDS @META_STATIC_LIB_DEPENDS@)
|
||||
set(@META_PROJECT_VARNAME_UPPER@_STATIC_LIB_COMPILE_DEFINITIONS @META_STATIC_LIB_COMPILE_DEFINITIONS@)
|
||||
set(@META_PROJECT_VARNAME_UPPER@_INCLUDE_DIRS "@PACKAGE_HEADER_INSTALL_DESTINATION@")
|
||||
|
@ -19,22 +19,22 @@ else()
|
|||
set(@META_PROJECT_VARNAME_UPPER@_LIB "${@META_PROJECT_VARNAME_UPPER@_STATIC_LIB}")
|
||||
endif()
|
||||
|
||||
macro(use_@META_PROJECT_VARNAME_UPPER@)
|
||||
macro(use_@META_PROJECT_VARNAME@)
|
||||
include_directories(BEFORE SYSTEM ${@META_PROJECT_VARNAME_UPPER@_INCLUDE_DIRS})
|
||||
link_directories(${@META_PROJECT_VARNAME_UPPER@_LIB_DIR})
|
||||
# add library to list of libraries to link against when building dynamic libraries or applications
|
||||
if(@META_PROJECT_VARNAME_UPPER@_HAS_STATIC_LIB AND ((NOT ARGV0 AND ((STATIC_LINKAGE AND "${META_PROJECT_TYPE}" STREQUAL "application") OR (STATIC_LIBRARY_LINKAGE AND ("${META_PROJECT_TYPE}" STREQUAL "" OR "${META_PROJECT_TYPE}" STREQUAL "library")))) OR ("${ARGV0}" STREQUAL "STATIC") OR (NOT ARGV0 AND NOT @META_PROJECT_VARNAME_UPPER@_HAS_SHARED_LIB)))
|
||||
list(APPEND LIBRARIES ${@META_PROJECT_VARNAME_UPPER@_STATIC_LIB} ${@META_PROJECT_VARNAME_UPPER@_STATIC_LIB_DEPENDS})
|
||||
message(STATUS "Linking ${META_PROJECT_NAME} statically against @META_PROJECT_NAME@ (${@META_PROJECT_VARNAME_UPPER@_STATIC_LIB} ${@META_PROJECT_VARNAME_UPPER@_STATIC_LIB_DEPENDS}).")
|
||||
message(STATUS "Linking ${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX} statically against @TARGET_PREFIX@@META_PROJECT_NAME@@TARGET_SUFFIX@ (${@META_PROJECT_VARNAME_UPPER@_STATIC_LIB} ${@META_PROJECT_VARNAME_UPPER@_STATIC_LIB_DEPENDS}).")
|
||||
list(APPEND ADDITIONAL_STATIC_COMPILE_DEFINITIONS ${@META_PROJECT_VARNAME_UPPER@_STATIC_LIB_COMPILE_DEFINITIONS})
|
||||
elseif(@META_PROJECT_VARNAME_UPPER@_HAS_SHARED_LIB AND (NOT ARGV0 OR ("${ARGV0}" STREQUAL "SHARED")))
|
||||
list(APPEND LIBRARIES ${@META_PROJECT_VARNAME_UPPER@_SHARED_LIB})
|
||||
message(STATUS "Linking ${META_PROJECT_NAME} dynamically against @META_PROJECT_NAME@ (${@META_PROJECT_VARNAME_UPPER@_SHARED_LIB}).")
|
||||
message(STATUS "Linking ${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX} dynamically against @TARGET_PREFIX@@META_PROJECT_NAME@@TARGET_SUFFIX@ (${@META_PROJECT_VARNAME_UPPER@_SHARED_LIB}).")
|
||||
list(APPEND ADDITIONAL_SHARED_COMPILE_DEFINITIONS ${@META_PROJECT_VARNAME_UPPER@_SHARED_LIB_COMPILE_DEFINITIONS})
|
||||
elseif(ARGV0)
|
||||
message(FATAL_ERROR "Can not link ${META_PROJECT_NAME} against @META_PROJECT_NAME@ with the specified linkage ${ARGV0}.")
|
||||
message(FATAL_ERROR "Can not link ${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX} against @TARGET_PREFIX@@META_PROJECT_NAME@@TARGET_SUFFIX@ with the specified linkage ${ARGV0}.")
|
||||
else()
|
||||
message(FATAL_ERROR "Can not link ${META_PROJECT_NAME} against @META_PROJECT_NAME@.")
|
||||
message(FATAL_ERROR "Can not link ${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX} against @TARGET_PREFIX@@META_PROJECT_NAME@@TARGET_SUFFIX@.")
|
||||
endif()
|
||||
# add library (including dependencies) to list of libraries to be provided as transitive dependencies when building static libraries
|
||||
list(APPEND STATIC_LIBRARIES ${@META_PROJECT_VARNAME_UPPER@_STATIC_LIB} ${@META_PROJECT_VARNAME_UPPER@_STATIC_LIB_DEPENDS})
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
_@META_PROJECT_NAME@()
|
||||
_@TARGET_PREFIX@@META_PROJECT_NAME@@TARGET_SUFFIX@()
|
||||
{
|
||||
eval "$(@TARGET_EXECUTABLE@ --bash-completion-for "$((COMP_CWORD - 1))" "${COMP_WORDS[@]:1}")"
|
||||
return 0;
|
||||
}
|
||||
complete -F _@META_PROJECT_NAME@ @COMPLETION_META_PROJECT_NAME@
|
||||
complete -F _@TARGET_PREFIX@@META_PROJECT_NAME@@TARGET_SUFFIX@ @TARGET_PREFIX@@META_PROJECT_NAME@@TARGET_SUFFIX@
|
||||
|
|
Loading…
Reference in New Issue