Reorganization between variables/build options
authorRomain Forlot <romain.forlot@iot.bzh>
Wed, 16 Aug 2017 07:38:39 +0000 (09:38 +0200)
committerRomain Forlot <romain.forlot@iot.bzh>
Wed, 16 Aug 2017 16:40:34 +0000 (18:40 +0200)
Move compilation/link option to build options and all custom
variables stuff in variable file. Make build options as first
file to be included then all custom stuff.

Change-Id: I530268574745edcc414e29cac59eb542954d73cc
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
cmake/cmake.d/01-build_options.cmake [moved from cmake/cmake.d/04-build_options.cmake with 69% similarity]
cmake/cmake.d/02-variables.cmake [moved from cmake/cmake.d/01-variables.cmake with 76% similarity]
cmake/cmake.d/03-macros.cmake [moved from cmake/cmake.d/02-macros.cmake with 99% similarity]
cmake/cmake.d/04-extra_targets.cmake [moved from cmake/cmake.d/03-extra_targets.cmake with 100% similarity]

similarity index 69%
rename from cmake/cmake.d/04-build_options.cmake
rename to cmake/cmake.d/01-build_options.cmake
index 3db685c..246d650 100644 (file)
 #     Customise your preferences in "./conf.d/cmake/config.cmake"
 #--------------------------------------------------------------------------
 
-# Check GCC minimal version
-if (gcc_minimal_version)
-               message (STATUS "${Cyan}-- Check gcc_minimal_version (found gcc version ${CMAKE_C_COMPILER_VERSION}) \
-               (found g++ version ${CMAKE_CXX_COMPILER_VERSION})${ColourReset}")
-       if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${gcc_minimal_version} OR CMAKE_C_COMPILER_VERSION VERSION_LESS ${gcc_minimal_version})
-               message(FATAL_ERROR "${Red}**** FATAL: Require at least gcc-${gcc_minimal_version} please set CMAKE_C[XX]_COMPILER")
-       endif()
-endif(gcc_minimal_version)
-
-# Check Kernel mandatory version, will fail the configuration if required version not matched.
-if (kernel_mandatory_version)
-       message (STATUS "${Cyan}-- Check kernel_mandatory_version (found kernel version ${KERNEL_VERSION})${ColourReset}")
-       if (KERNEL_VERSION VERSION_LESS ${kernel_mandatory_version})
-               message(FATAL_ERROR "${Red}**** FATAL: Require at least ${kernel_mandatory_version} please use a recent kernel or source your SDK environment then clean and reconfigure your CMake project.")
-       endif (KERNEL_VERSION VERSION_LESS ${kernel_mandatory_version})
-endif(kernel_mandatory_version)
-
-# Check Kernel minimal version just print a Warning about missing features
-# and set a definition to be used as preprocessor condition in code to disable
-# incompatibles features.
-if (kernel_minimal_version)
-       message (STATUS "${Cyan}-- Check kernel_minimal_version (found kernel version ${KERNEL_VERSION})${ColourReset}")
-       if (KERNEL_VERSION VERSION_LESS ${kernel_minimal_version})
-               message(WARNING "${Yellow}**** Warning: Some feature(s) require at least ${kernel_minimal_version}. Please use a recent kernel or source your SDK environment then clean and reconfigure your CMake project.${ColourReset}")
-       else (KERNEL_VERSION VERSION_LESS ${kernel_minimal_version})
-               add_definitions(-DKERNEL_MINIMAL_VERSION_OK)
-       endif (KERNEL_VERSION VERSION_LESS ${kernel_minimal_version})
-endif(kernel_minimal_version)
+# (BUG!!!) as PKG_CONFIG_PATH does not work [should be en env variable]
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON CACHE BOOLEAN "Flag for using prefix path")
 
 INCLUDE(FindPkgConfig)
 INCLUDE(CheckIncludeFiles)
 INCLUDE(CheckLibraryExists)
 INCLUDE(GNUInstallDirs)
 
+set(CMAKE_BUILD_TYPE Debug CACHE STRING "the type of build")
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+set(CMP0048 1)
+
 # Default compilation options
 ############################################################################
 link_libraries(-Wl,--as-needed -Wl,--gc-sections)
@@ -68,7 +46,6 @@ endforeach()
 
 # Compilation OPTIONS depending on language
 #########################################
-
 foreach(option ${COMPILE_OPTIONS})
        add_compile_options(${option})
 endforeach()
@@ -130,6 +107,7 @@ ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
 INCLUDE_DIRECTORIES(${EXTRA_INCLUDE_DIRS})
 
 # Default Linkflag
+set (PKG_TEMPLATE_PREFIX ${CMAKE_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR} CACHE PATH "Default Package Templates Directory")
 if(NOT BINDINGS_LINK_FLAG)
        set(BINDINGS_LINK_FLAG "-Wl,--version-script=${PKG_TEMPLATE_PREFIX}/cmake/export.map")
 endif()
similarity index 76%
rename from cmake/cmake.d/01-variables.cmake
rename to cmake/cmake.d/02-variables.cmake
index a9fbc6e..9dc970a 100644 (file)
@@ -45,16 +45,9 @@ if(NOT WIN32)
   set(BoldWhite   "${Esc}[1;37m")
 endif()
 
-# (BUG!!!) as PKG_CONFIG_PATH does not work [should be en env variable]
-set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON CACHE BOOLEAN "Flag for using prefix path")
-
 # Native packaging name
 set(NPKG_PROJECT_NAME agl-${PROJECT_NAME})
 
-set(CMAKE_BUILD_TYPE Debug CACHE STRING "the type of build")
-set(CMAKE_POSITION_INDEPENDENT_CODE ON)
-set(CMP0048 1)
-
 # Get the os type
 # Used to package .deb
 if(EXISTS "/etc/os-release")
@@ -95,6 +88,35 @@ set(PROJECT_RESOURCES "${CMAKE_SOURCE_DIR}/data" CACHE PATH "Subpath to data")
 set(AFB_TOKEN   ""      CACHE PATH "Default AFB_TOKEN")
 set(AFB_REMPORT "1234" CACHE PATH "Default AFB_TOKEN")
 
+# Check GCC minimal version
+if (gcc_minimal_version)
+message (STATUS "${Cyan}-- Check gcc_minimal_version (found gcc version ${CMAKE_C_COMPILER_VERSION}) \
+(found g++ version ${CMAKE_CXX_COMPILER_VERSION})${ColourReset}")
+if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${gcc_minimal_version} OR CMAKE_C_COMPILER_VERSION VERSION_LESS ${gcc_minimal_version})
+message(FATAL_ERROR "${Red}**** FATAL: Require at least gcc-${gcc_minimal_version} please set CMAKE_C[XX]_COMPILER")
+endif()
+endif(gcc_minimal_version)
+
+# Check Kernel mandatory version, will fail the configuration if required version not matched.
+if (kernel_mandatory_version)
+message (STATUS "${Cyan}-- Check kernel_mandatory_version (found kernel version ${KERNEL_VERSION})${ColourReset}")
+if (KERNEL_VERSION VERSION_LESS ${kernel_mandatory_version})
+message(FATAL_ERROR "${Red}**** FATAL: Require at least ${kernel_mandatory_version} please use a recent kernel or source your SDK environment then clean and reconfigure your CMake project.")
+endif (KERNEL_VERSION VERSION_LESS ${kernel_mandatory_version})
+endif(kernel_mandatory_version)
+
+# Check Kernel minimal version just print a Warning about missing features
+# and set a definition to be used as preprocessor condition in code to disable
+# incompatibles features.
+if (kernel_minimal_version)
+message (STATUS "${Cyan}-- Check kernel_minimal_version (found kernel version ${KERNEL_VERSION})${ColourReset}")
+if (KERNEL_VERSION VERSION_LESS ${kernel_minimal_version})
+message(WARNING "${Yellow}**** Warning: Some feature(s) require at least ${kernel_minimal_version}. Please use a recent kernel or source your SDK environment then clean and reconfigure your CMake project.${ColourReset}")
+else (KERNEL_VERSION VERSION_LESS ${kernel_minimal_version})
+add_definitions(-DKERNEL_MINIMAL_VERSION_OK)
+endif (KERNEL_VERSION VERSION_LESS ${kernel_minimal_version})
+endif(kernel_minimal_version)
+
 # Project path variables
 # ----------------------
 
@@ -115,7 +137,6 @@ else()
 endif()
 
 # Paths to templates files
-set (PKG_TEMPLATE_PREFIX ${CMAKE_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR} CACHE PATH "Default Package Templates Directory")
 set(TEMPLATE_DIR "${PKG_TEMPLATE_PREFIX}/cmake/template.d" CACHE PATH "Subpath to a directory where are stored needed files to launch on remote target to debuging purposes")
 
 if(NOT WIDGET_CONFIG_TEMPLATE)
@@ -148,6 +169,8 @@ endif()
 # Break After Binding are loaded but before they get initialised
 set(GDB_INITIAL_BREAK "personality" CACHE STRING "Initial Break Point for GDB remote")
 
+# Define some checker binaries to verify input DATA files
+# to be included in package.
 set(LUA_CHECKER "luac" CACHE STRING "LUA compiler")
 set(XML_CHECKER "xmllint" CACHE STRING "XML linter")
 set(JSON_CHECKER "json_verify" CACHE STRING "JSON linter")
similarity index 99%
rename from cmake/cmake.d/02-macros.cmake
rename to cmake/cmake.d/03-macros.cmake
index a085738..62e5790 100644 (file)
@@ -174,7 +174,7 @@ macro(project_targets_populate)
                                add_dependencies(${POPULE_PACKAGE_TARGET} ${TARGET})
                        endif(${T} STREQUAL "BINDING")
                elseif(${CMAKE_BUILD_TYPE} MATCHES "[Dd][Ee][Bb][Uu][Gg]")
-                       MESSAGE(".. Warning: ${TARGET} ignored when packaging.")
+                       MESSAGE("${Yellow}.. Warning: ${TARGET} ignored when packaging.${ColourReset}")
                endif()
        endforeach()
 endmacro(project_targets_populate)