cmake: improve versioning

The version defines are now done all the time. and the version pattern
does mach the one from autotools. And supports release mode now.
This commit is contained in:
Marcel Hollerbach 2017-01-21 13:27:17 +01:00
parent 9f2a2f7968
commit 2a5c2a0c3c
4 changed files with 28 additions and 11 deletions

View File

@ -1,7 +1,11 @@
cmake_minimum_required(VERSION 3.7)
project(efl VERSION 1.19.99.1)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/helpers")
include(GNUInstallDirs)
include(EflMacros)
EFL_PROJECT(1.19.99)
if (NOT EFL_BUILD_ID)
set(EFL_BUILD_ID 120)
@ -21,6 +25,7 @@ add_definitions(
"-DPACKAGE_BIN_DIR=\"${CMAKE_INSTALL_FULL_BINDIR}\""
"-DPACKAGE_LIB_DIR=\"${CMAKE_INSTALL_FULL_LIBDIR}\""
"-DPACKAGE_BUILD_DIR=\"${CMAKE_SOURCE_DIR}\""
"-DPACKAGE_VERSION=\"${PROJECT_VERSION}\""
)
include_directories(
@ -28,9 +33,6 @@ include_directories(
${PROJECT_BINARY_DIR}/src/lib/efl
)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/helpers")
include(EflMacros)
include(${CMAKE_SOURCE_DIR}/cmake/config/common.cmake)
EFL_LIB(eina)

View File

@ -854,3 +854,18 @@ function(EFL_MODULE _modname)
endif()
endif()
endfunction()
macro(EFL_PROJECT version)
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
project(efl VERSION ${version})
else ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
execute_process(
COMMAND git rev-list --count HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
project(efl VERSION ${version}.${GIT_VERSION})
endif ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
message("VERSION ${PROJECT_VERSION}")
endmacro()

View File

@ -15,7 +15,7 @@
and require an explicit request to get it. */
#endif
#cmakedefine EFL_VERSION_MAJOR @EFL_VERSION_MAJOR@
#cmakedefine EFL_VERSION_MINOR @EFL_VERSION_MINOR@
#cmakedefine EFL_BUILD_ID "@EFL_BUILD_ID@"
#define EFL_VERSION_MAJOR @EFL_VERSION_MAJOR@
#define EFL_VERSION_MINOR @EFL_VERSION_MINOR@
#define EFL_BUILD_ID "@EFL_BUILD_ID@"
#endif

View File

@ -4,10 +4,10 @@
#define _GNU_SOURCE
#cmakedefine HAVE_SYS_MMAN_H 1
#cmakedefine VMAJ @VMAJ@
#cmakedefine VMIN @VMIN@
#cmakedefine VMIC @VMIC@
#cmakedefine VREV @VREV@
#define VMAJ @VMAJ@
#define VMIN @VMIN@
#define VMIC @VMIC@
#define VREV @VREV@
#cmakedefine NVALGRIND 1
#cmakedefine HAVE_CLOCK_GETTIME 1