dump-build-information/CMakeLists.txt

23 lines
1.2 KiB
CMake

cmake_minimum_required(VERSION 3.7.2)
project (dump-build-information)
# set build type to Release by default
set(CMAKE_BUILD_TYPE Release)
# stuff for dummy parameter extraction
add_executable(dummy dummy.cpp)
set_target_properties(dummy PROPERTIES COMPILE_FLAGS ${BUILD_FLAGS} -frecord-gcc-switches)
# put all the information into one header file
add_custom_command (OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/buildinformation.h
COMMAND echo \"\#define USED_FLAGS \\\"\"`readelf -p .GCC.command.line ${CMAKE_CURRENT_BINARY_DIR}/dummy | grep -v -e dummy -e "-frecord-gcc-switches" | grep -e \"\\[.*\\]\" | cut -d\\] -f2- | tr -d \"\\n\"`\\\" >> ${CMAKE_CURRENT_BINARY_DIR}/buildinformation.h
COMMAND echo \"\#define GIT_VERSION \\\"\"`git describe --dirty --always --tags`\\\" >> ${CMAKE_CURRENT_BINARY_DIR}/buildinformation.h
COMMAND echo \"\#define USED_COMPILER \\\"\"`${CMAKE_C_COMPILER} --version | head -n1`\\\" >> ${CMAKE_CURRENT_BINARY_DIR}/buildinformation.h
DEPENDS dummy
)
# add the build folder to the includes
include_directories("${CMAKE_CURRENT_BINARY_DIR}")
# build the "real" target
add_executable(dump-build-information main.cpp ${CMAKE_CURRENT_BINARY_DIR}/buildinformation.h)