From ed512d6aae18909c85cc92f72930998433cbf3d1 Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Tue, 27 Jun 2017 15:18:02 +0200 Subject: [PATCH] Only 1 include in root CMake and no macro to call Added a variable to specify pattern to search CMakeLists.txt over directories and include common.cmake from config.cmake file. Now it isn't needed to call any macro to configure the project. Change-Id: I0c0eecc684db4f8ee1055d84205ad457a6fde179 Signed-off-by: Romain Forlot --- cmake/common.cmake | 21 ++++++++------------- cmake/config.cmake.sample | 11 ++++++++++- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/cmake/common.cmake b/cmake/common.cmake index eb123f1..6465aaf 100644 --- a/cmake/common.cmake +++ b/cmake/common.cmake @@ -36,17 +36,12 @@ foreach(file ${project_cmakefiles} ${home_cmakefiles} ${system_cmakefiles}) include(${file}) endforeach() -macro(project_build) - set (ARGSLIST ${ARGN}) - list(LENGTH ARGSLIST ARGSNUM) - if(${ARGSNUM} GREATER 0) - set(pattern "${ARGV0}") - else() - set(pattern "*") - endif() +if(DEFINED PROJECT_SRC_DIR_PATTERN) + project_subdirs_add(${PROJECT_SRC_DIR_PATTERN}) +else() + project_subdirs_add() +endif(DEFINED PROJECT_SRC_DIR_PATTERN) - project_subdirs_add(${pattern}) - project_targets_populate() - project_package_build() - project_closing_msg() -endmacro(project_build) \ No newline at end of file +project_targets_populate() +project_package_build() +project_closing_msg() \ No newline at end of file diff --git a/cmake/config.cmake.sample b/cmake/config.cmake.sample index 9e41872..67c18e1 100644 --- a/cmake/config.cmake.sample +++ b/cmake/config.cmake.sample @@ -40,12 +40,16 @@ set(PROJECT_APP_TEMPLATES_DIR "conf.d/app-templates") # Where are stored data for your application. Pictures, static resources must be placed in that folder. # set(PROJECT_RESOURCES "data") +# Which directories inspect to find CMakeLists.txt target files +# set(PROJECT_SRC_DIR_PATTERN "*") + # Compilation Mode (DEBUG, RELEASE) # ---------------------------------- set(CMAKE_BUILD_TYPE "DEBUG") # Kernel selection if needed. Impose a minimal version. -# NOTE FOR NOW IT CHECKS KERNEL HOST VERSION +# NOTE FOR NOW IT CHECKS KERNEL Yocto SDK Kernel version +# else only HOST VERSION # ----------------------------------------------- #set (kernel_minimal_version 4.8) @@ -138,3 +142,8 @@ set(WIDGET_ENTRY_POINT EntryPoint_Path_Not_Set) #------------------------------------------------------------ #set(AFB_TOKEN "" CACHE PATH "Default AFB_TOKEN") #set(AFB_REMPORT "1234" CACHE PATH "Default AFB_TOKEN") + +# This include is mandatory and MUST happens at the end +# of this file, else you expose you to unexpected behavior +# ----------------------------------------------------------- +include(${PROJECT_APP_TEMPLATES_DIR}/cmake/common.cmake) \ No newline at end of file -- 2.16.6