X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=cmake%2Fcommon.cmake;h=8e57b26fd858fdd5b65e066ff5eaeafc4ccf91f8;hb=refs%2Fchanges%2F91%2F16091%2F2;hp=ad5567ad62f7d7ed0f9f8de7e6c5e0dedce85ec4;hpb=4488c5e9443336de6e7c391394ee619d15b38bed;p=apps%2Fapp-templates.git diff --git a/cmake/common.cmake b/cmake/common.cmake index ad5567a..8e57b26 100644 --- a/cmake/common.cmake +++ b/cmake/common.cmake @@ -24,28 +24,50 @@ # Customise your preferences in "./conf.d/cmake/config.cmake" #-------------------------------------------------------------------------- +# Include ExternalProject CMake module by default +include(${CMAKE_ROOT}/Modules/ExternalProject.cmake) + +if(DEFINED ENV{SDKTARGETSYSROOT}) +file(STRINGS $ENV{SDKTARGETSYSROOT}/usr/include/linux/version.h LINUX_VERSION_CODE_LINE REGEX "LINUX_VERSION_CODE") +set(BUILD_ENV_SYSROOT $ENV{SDKTARGETSYSROOT}) +elseif(DEFINED ENV{PKG_CONFIG_SYSROOT_DIR}) +file(STRINGS $ENV{PKG_CONFIG_SYSROOT_DIR}/usr/include/linux/version.h LINUX_VERSION_CODE_LINE REGEX "LINUX_VERSION_CODE") +set(BUILD_ENV_SYSROOT $ENV{PKG_CONFIG_SYSROOT_DIR}) +else() +file(STRINGS /usr/include/linux/version.h LINUX_VERSION_CODE_LINE REGEX "LINUX_VERSION_CODE") +set(BUILD_ENV_SYSROOT "") +endif() + # Get the os type # Used to package .deb set(OS_RELEASE_PATH "${BUILD_ENV_SYSROOT}/etc/os-release") if(EXISTS ${OS_RELEASE_PATH}) - execute_process(COMMAND bash "-c" "grep -E '^ID(_LIKE)?=' ${OS_RELEASE_PATH} | tail -n 1" + execute_process(COMMAND bash "-c" "grep -E '^ID(_LIKE)?=' /etc/os-release | tail -n 1" OUTPUT_VARIABLE TMP_OSRELEASE ) if (NOT TMP_OSRELEASE STREQUAL "") - string(REGEX REPLACE ".*=\"?([0-9a-z\._-]*)\"?\n" "\\1" OSRELEASE ${TMP_OSRELEASE}) + string(REGEX REPLACE ".*=\"?([0-9a-z\._ -]*)\"?\n" "\\1" OSDETECTED ${TMP_OSRELEASE}) + string(REPLACE " " ";" OSRELEASE ${OSDETECTED}) else() set(OSRELEASE "NOT COMPATIBLE !") endif() - +elseif("${BUILD_ENV_SYSROOT}" STREQUAL "$ENV{PKG_CONFIG_SYSROOT_DIR}") + set(OSRELEASE "yocto-build") else() set(OSRELEASE "NOT COMPATIBLE ! Missing ${OS_RELEASE_PATH} file.") endif() -message(STATUS "Distribution used ${OSRELEASE}") +message(STATUS "Distribution detected (separated by ';' choose one of them) ${OSRELEASE}") file(GLOB project_cmakefiles ${PROJECT_APP_TEMPLATES_DIR}/cmake/cmake.d/[0-9][0-9]-*.cmake) -file(GLOB distro_cmakefiles ${PROJECT_APP_TEMPLATES_DIR}/../cmake/[0-9][0-9]-${OSRELEASE}*.cmake ${PROJECT_APP_TEMPLATES_DIR}/../cmake/[0-9][0-9]-common*.cmake) +foreach(OS IN LISTS OSRELEASE) + list(APPEND PATTERN "${PROJECT_APP_TEMPLATES_DIR}/../cmake/[0-9][0-9]-${OS}*.cmake") +endforeach() +list(APPEND PATTERN "${PROJECT_APP_TEMPLATES_DIR}/../cmake/[0-9][0-9]-common*.cmake") + +file(GLOB distro_cmakefiles ${PATTERN}) list(SORT distro_cmakefiles) + if(NOT distro_cmakefiles) file(GLOB distro_cmakefiles ${PROJECT_APP_TEMPLATES_DIR}/../cmake/[0-9][0-9]-default*.cmake) endif() @@ -63,6 +85,9 @@ foreach(file ${system_cmakefiles} ${home_cmakefiles} ${project_cmakefiles}) include(${file}) endforeach() +set_install_prefix() +prevent_in_source_build() + if(DEFINED PROJECT_SRC_DIR_PATTERN) project_subdirs_add(${PROJECT_SRC_DIR_PATTERN}) else() @@ -73,6 +98,7 @@ configure_files_in_dir(${PROJECT_APP_TEMPLATES_DIR}/${ENTRY_POINT}/template.d) configure_files_in_dir($ENV{HOME}/.config/app-templates/scripts) configure_files_in_dir(/etc/app-templates/scripts) +check_version() project_targets_populate() remote_targets_populate() project_package_build()