cmake: detect vpp version, set soversion, pretty config print

Change-Id: I5d0777421debe6c3e4b93d62ad6790912063a9e6
Signed-off-by: Damjan Marion <damarion@cisco.com>
This commit is contained in:
Damjan Marion
2018-08-31 17:38:57 +02:00
parent 219cc90cb4
commit c6c0246e2e
3 changed files with 57 additions and 5 deletions

View File

@ -16,11 +16,22 @@ cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(vpp C)
include(CheckCCompilerFlag)
include(cmake/message.cmake)
include(cmake/cpu.cmake)
include(cmake/ccache.cmake)
##############################################################################
# VPP Version
##############################################################################
execute_process(
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMAND scripts/version
OUTPUT_VARIABLE VPP_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
string(REPLACE "-" ";" VPP_LIB_VERSION ${VPP_VERSION})
list(GET VPP_LIB_VERSION 0 VPP_LIB_VERSION)
##############################################################################
# build config
##############################################################################
@ -41,10 +52,6 @@ endif()
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${VPP_LIB_DIR_NAME}")
set(CMAKE_INSTALL_MESSAGE NEVER)
message(STATUS "CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}")
message(STATUS "We are on a ${CMAKE_SYSTEM_NAME} system")
message(STATUS "The host processor is ${CMAKE_HOST_SYSTEM_PROCESSOR}")
include_directories (
${CMAKE_SOURCE_DIR}
${CMAKE_BINARY_DIR}
@ -74,3 +81,32 @@ foreach(
endforeach()
include(cmake/pack.cmake)
##############################################################################
# detect if we are inside git repo and add configure dependency
##############################################################################
execute_process(
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMAND git rev-parse --show-toplevel
OUTPUT_VARIABLE VPP_GIT_TOPLEVEL_DIR
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if (VPP_GIT_TOPLEVEL_DIR)
set_property(
DIRECTORY APPEND PROPERTY
CMAKE_CONFIGURE_DEPENDS ${VPP_GIT_TOPLEVEL_DIR}/.git/index
)
endif()
##############################################################################
# print configuration
##############################################################################
message(STATUS "Configuration:")
pr("VPP version" "${VPP_VERSION}")
pr("VPP library version" "${VPP_LIB_VERSION}")
pr("GIT toplevel dir" "${VPP_GIT_TOPLEVEL_DIR}")
pr("C flags" "${CMAKE_C_FLAGS}")
pr("Linker flags" "${CMAKE_LINKER_FLAGS}")
pr("Target processor" "${CMAKE_SYSTEM_PROCESSOR}")
pr("Build type" "${CMAKE_BUILD_TYPE}")
pr("Install prefix" "${CMAKE_INSTALL_PREFIX}")

View File

@ -21,6 +21,7 @@ macro(add_vpp_library lib)
add_library(${lib} SHARED ${ARG_SOURCES})
target_compile_options(${lib} PRIVATE -Wall)
set_target_properties(${lib} PROPERTIES SOVERSION ${VPP_LIB_VERSION})
# library deps
if(ARG_LINK_LIBRARIES)

View File

@ -34,3 +34,18 @@ function(message)
endif()
endfunction()
##############################################################################
# aligned config output
##############################################################################
function(pr desc val)
string(ASCII 27 esc)
set(reset "${esc}[m")
set(cyan "${esc}[36m")
string(LENGTH ${desc} len)
while (len LESS 20)
set (desc "${desc} ")
string(LENGTH ${desc} len)
endwhile()
_message("${cyan}${desc}${reset}: ${val}")
endfunction()