diff options
author | Manuel Bentele | 2020-10-22 12:08:34 +0200 |
---|---|---|
committer | Manuel Bentele | 2020-10-22 12:08:34 +0200 |
commit | f9872723efc831827d179c3baf5b9f6c428512c4 (patch) | |
tree | 9662cc3071362570a1f4051f0850b41fbdfff246 /cmake/Build.cmake | |
parent | [BUILD] add option to build the dnbd3-server with afl-fuzz support (diff) | |
download | dnbd3-f9872723efc831827d179c3baf5b9f6c428512c4.tar.gz dnbd3-f9872723efc831827d179c3baf5b9f6c428512c4.tar.xz dnbd3-f9872723efc831827d179c3baf5b9f6c428512c4.zip |
[BUILD] add CMake targets to build binary and source packages with CPack
This patch adds the following CMake targets
- package
- source
to build bundeled packages. Those packages contain either all built
binary artifacts or all source files for source code distribution. Both
CMake targets are available in Release build configuration.
Diffstat (limited to 'cmake/Build.cmake')
-rw-r--r-- | cmake/Build.cmake | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/cmake/Build.cmake b/cmake/Build.cmake new file mode 100644 index 0000000..a7f4c07 --- /dev/null +++ b/cmake/Build.cmake @@ -0,0 +1,27 @@ +# SPDX-License-Identifier: GPL-2.0 +# +# Copyright (C) 2020 Manuel Bentele <development@manuel-bentele.de> +# + +macro(gen_build_type BUILD_INPUT_FILE_TEMPLATE BUILD_OUTPUT_FILE) + get_filename_component(BUILD_OUTPUT_FILENAME ${BUILD_OUTPUT_FILE} NAME) + # command that will trigger a rebuild of build.h every time + add_custom_command(OUTPUT regenerate-build-file + COMMAND ${CMAKE_COMMAND} -E sleep 0 + COMMENT "Trigger generating ${BUILD_OUTPUT_FILENAME}") + + # call the GenerateBuild.cmake file to generate the build.h file + add_custom_command(OUTPUT ${BUILD_OUTPUT_FILE} + COMMAND ${CMAKE_COMMAND} -D BUILD_INPUT_FILE_TEMPLATE=${BUILD_INPUT_FILE_TEMPLATE} + -D BUILD_OUTPUT_FILE=${BUILD_OUTPUT_FILE} + -D BUILD_TYPE=${CMAKE_BUILD_TYPE} + -P ${PROJECT_MODULES_DIR}/GenerateBuild.cmake + COMMENT "Generating ${BUILD_OUTPUT_FILENAME}" + DEPENDS regenerate-build-file) + add_custom_target(dnbd3-generate-build DEPENDS ${BUILD_OUTPUT_FILE}) + + # create target to expose project build type + add_library(dnbd3-build INTERFACE) + target_include_directories(dnbd3-build INTERFACE ${PROJECT_INCLUDE_GEN_DIR}) + add_dependencies(dnbd3-build dnbd3-generate-build) +endmacro(gen_build_type BUILD_INPUT_FILE_TEMPLATE BUILD_OUTPUT_FILE) |