123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- @PACKAGE_INIT@
- # 以上为configure_package_config_file自动生成的初始化程序
- set_and_check(target ${CMAKE_CURRENT_LIST_DIR}/aFunlang.cmake)
- include(${target}) # 调用msgTargets.cmake导入模块
- set(components_list) # 记录组件的list
- # 检查是否存在对应 target
- if (TARGET aFunlang::tool-shared)
- list(APPEND components_list tool-shared)
- endif()
- if (TARGET aFunlang::tool-static)
- list(APPEND components_list tool-shared)
- endif()
- if (TARGET aFunlang::core-shared)
- list(APPEND components_list core-shared)
- endif()
- if (TARGET aFunlang::core-static)
- list(APPEND components_list core-static)
- endif()
- # 查找可执行程序
- set_and_check(aFunlang_ROOT @PACKAGE_INSTALL_DIR@)
- set_and_check(aFunlang_INCLUDE_DIRS @PACKAGE_INCLUDEDIR@)
- set_and_check(aFunlang_RUNTIME_DIRS @PACKAGE_BINDIR@)
- if(WIN32 OR CYGWIN) # cygwin 和 win32 一样使用.dll
- set_and_check(aFunlang_RUNTIME_LIBRARIES_DIRS @PACKAGE_BINDIR@)
- else()
- set_and_check(aFunlang_RUNTIME_LIBRARIES_DIRS @PACKAGE_LIBDIR@)
- endif()
- find_program(aFunlang_EXECUTABLE NAMES aFun aFun-ct aFun-ct aFun-xx HINTS ${aFunlang_RUNTIME_DIRS} DOC "aFun executable" NO_DEFAULT_PATH)
- find_program(aFunlang_ct_EXECUTABLE NAMES aFun-ct HINTS ${aFunlang_RUNTIME_DIRS} DOC "aFun-ct executable" NO_DEFAULT_PATH)
- find_program(aFunlang_cx_EXECUTABLE NAMES aFun-ct HINTS ${aFunlang_RUNTIME_DIRS} DOC "aFun-ct executable" NO_DEFAULT_PATH)
- find_program(aFunlang_xx_EXECUTABLE NAMES aFun-xx HINTS ${aFunlang_RUNTIME_DIRS} DOC "aFun-xx executable" NO_DEFAULT_PATH)
- if (aFunlang_EXECUTABLE)
- list(APPEND components_list aFun)
- endif()
- if (aFunlang_ct_EXECUTABLE)
- list(APPEND components_list aFun-ct)
- endif()
- if (aFunlang_cx_EXECUTABLE)
- list(APPEND components_list aFun-ct)
- endif()
- if (aFunlang_xx_EXECUTABLE)
- list(APPEND components_list aFun-xx)
- endif()
- # 用该函数取代find_package 避免变量污染
- function(find_package_safe)
- set(multiValueArgs PACKAGE VARS)
- cmake_parse_arguments(fp "" "" "${multiValueArgs}" ${ARGN})
- set(_find_package_arg ${fp_PACKAGE})
- set(_vars ${fp_VARS})
- find_package(${_find_package_arg})
- foreach(_var IN LISTS _vars)
- set(${_var} ${${_var}} PARENT_SCOPE)
- endforeach()
- endfunction()
- # 查找依赖
- if (WIN32 AND NOT CYGWIN) # cygwin 不需要 dl
- set_and_check(aFunlang_dlfcn_ROOT @PACKAGE_dlfcn_INSTALL_DIR@)
- find_package_safe(PACKAGE dlfcn-win32 QUIET HINTS @PACKAGE_dlfcn_CMAKEDIR@) # 指定路径
- if (NOT TARGET dlfcn-win32::dl)
- message(FATAL_ERROR "Target dlfcn-win32::dl not found.") # find_package的报错出自此处, 不需要REQUIRED
- endif()
- endif()
- set_and_check(aFunlang_fflags_ROOT @PACKAGE_fflags_INSTALL_DIR@)
- set(FFlags_ROOT ${aFunlang_fflags_ROOT})
- set(_CMAKE_MODULE_PATH_bak ${CMAKE_MODULE_PATH})
- list(APPEND CMAKE_MODULE_PATH @PACKAGE_fflags_CMAKEDIR@)
- find_package_safe(PACKAGE FFlags QUIET)
- if (NOT TARGET FFlags::fflags)
- message(FATAL_ERROR "Target FFlags::fflags not found.")
- endif()
- set(CMAKE_MODULE_PATH ${_CMAKE_MODULE_PATH_bak})
- unset(_CMAKE_MODULE_PATH_bak)
- check_required_components(${components_list})
|