From 42d7579d7795f03124514f09ce2ed59e3b1e8cf6 Mon Sep 17 00:00:00 2001 From: Ivan Pelipenko Date: Sat, 5 Sep 2020 01:22:43 +0300 Subject: [PATCH] shstk_find_header fixes --- SHSTKMacros.cmake | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/SHSTKMacros.cmake b/SHSTKMacros.cmake index 578f94a..2ab0b74 100644 --- a/SHSTKMacros.cmake +++ b/SHSTKMacros.cmake @@ -33,7 +33,7 @@ include(DeployMacros) macro(shstk_define_option name desc) if (NOT DEFINED ${name}) option(${name} ${desc} ${ARGN}) - message("define option ${name} ${desc} ${ARGN}") + #message("define option ${name} ${desc} ${ARGN}") endif() endmacro() @@ -117,7 +117,7 @@ macro(shstk_begin_project domain module) set(BUILDING_${domain} ON CACHE BOOL "build ${domain}") set(${domain}_ROOT_SRC "${CMAKE_CURRENT_SOURCE_DIR}" CACHE STRING "") set(${domain}_ROOT_BIN "${CMAKE_CURRENT_BINARY_DIR}" CACHE STRING "") - set(SET_TARGETS_${domain} OFF CACHE BOOL "") + set(SET_TARGETS_${domain} OFF CACHE BOOL "" FORCE) if(STATIC_LIB) add_definitions(-D${module}_STATIC_DEFINE) @@ -305,12 +305,21 @@ macro(shstk_set_find_dirs domain) endmacro() -macro(shstk_find_header module filename add_find_info) +macro(shstk_find_header domain module filename add_find_info) if(NOT ${module}_VERSION) + find_file(${domain}_H_INCLUDE "${filename}" HINTS ${${domain}_INCDIR}) + if (NOT ${domain}_H_INCLUDE) + message(FATAL_ERROR "Can`t find ${module} version file (\"${filename}\")!") + endif() + #if (DEFINED ANDROID_PLATFORM) + # set(CD_INCLUDES ${ANDROID_SYSTEM_LIBRARY_PATH}/usr/include/${domain}) + #else() + get_filename_component(${domain}_INCLUDES ${${domain}_H_INCLUDE} PATH) + #endif() include(CheckSymbolExists) - check_symbol_exists(${module}_VERSION_NAME "${${module}_INCLUDES}/${filename}" _version_found) + check_symbol_exists(${module}_VERSION_NAME "${${domain}_INCLUDES}/${filename}" _version_found) if (_version_found) - file(STRINGS "${${module}_INCLUDES}/${filename}" _version REGEX "^[ \t]*#define[ \t]+${module}_VERSION_NAME+[ \t]+.*$") + file(STRINGS "${${domain}_INCLUDES}/${filename}" _version REGEX "^[ \t]*#define[ \t]+${module}_VERSION_NAME+[ \t]+.*$") string(REGEX MATCH "\".*\"" _version ${_version}) string(LENGTH ${_version} SL) math(EXPR SL ${SL}-2) @@ -325,7 +334,7 @@ macro(shstk_find_header module filename add_find_info) message(STATUS "Found ${module}${_afi} (version \"${${module}_VERSION}\")") endif() else() - message(FATAL_ERROR "Can`t find ${module} version file (\"${filename}\")!") + message(FATAL_ERROR "Can`t find ${module}_VERSION_NAME in \"${filename}\"!") endif() endif() if(${module}_FIND_VERSION VERSION_GREATER ${module}_VERSION)