| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- # Spark WithGit
- set(SPARK_FRAMEWORK_TO "${CMAKE_SOURCE_DIR}/cmake/_spark")
- function(spark_framework_from_git)
- # 1. 解析参数,使用原生 cmake 提供的参数解析器
- # set(OPTIONS)
- set(ONEVARG PREFIX)
- set(MULVARG COMPONENTS)
- cmake_parse_arguments(SPARK "" "${ONEVARG}" "${MULVARG}" ${ARGN})
- # 2. 如果包含 PREFIX 则开始进行解析
- if(SPARK_PREFIX)
- if(NOT EXISTS "${SPARK_FRAMEWORK_TO}")
- execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory "${SPARK_FRAMEWORK_TO}")
- endif(NOT EXISTS "${SPARK_FRAMEWORK_TO}")
- foreach(SPARK_COMPONENT IN LISTS SPARK_COMPONENTS)
- # execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory "${SPARK_PREFIX}.${SPARK_COMPONENT}'"
- # WORKING_DIRECTORY ${SPARK_FRAMEWORK_TO})
- if(NOT EXISTS "${SPARK_FRAMEWORK_TO}/${SPARK_COMPONENT}")
- execute_process(COMMAND git clone "${SPARK_PREFIX}/${SPARK_COMPONENT}"
- WORKING_DIRECTORY ${SPARK_FRAMEWORK_TO})
- else()
- message("[SparkWithGit] Exits: ${SPARK_COMPONENT}")
- endif(NOT EXISTS "${SPARK_FRAMEWORK_TO}/${SPARK_COMPONENT}")
- endforeach(SPARK_COMPONENT IN LISTS SPARK_COMPONENTS)
- endif(SPARK_PREFIX)
- # 方案一:.gitignoe
- if(NOT EXISTS "${SPARK_FRAMEWORK_TO}/.gitignore")
- file(WRITE "${SPARK_FRAMEWORK_TO}/.gitignore" "spark.*/\n.gitignore")
- endif(NOT EXISTS "${SPARK_FRAMEWORK_TO}/.gitignore")
- # 方案二: ../.gitignore
- # if(NOT EXISTS "${SPARK_FRAMEWORK_TO}/../.gitignore")
- # file(WRITE "${SPARK_FRAMEWORK_TO}/../.gitignore" "_spark/\n.gitignore")
- # endif(NOT EXISTS "${SPARK_FRAMEWORK_TO}/../.gitignore")
- endfunction(spark_framework_from_git)
- macro(spark_include)
- set(_spark_files ${ARGN})
- foreach(_spark_file IN LISTS _spark_files)
- if(EXISTS "${_spark_file}")
- include(${_spark_file})
- continue()
- endif(EXISTS "${_spark_file}")
- file(GLOB_RECURSE _file RELATIVE "${SPARK_FRAMEWORK_TO}" ${_spark_file})
- list(FILTER _file EXCLUDE REGEX "\\.\\.")
-
- if(EXISTS "${SPARK_FRAMEWORK_TO}/${_file}")
- message("FOUND: ${SPARK_FRAMEWORK_TO}/${_file}")
- include("${SPARK_FRAMEWORK_TO}/${_file}")
- else()
- message(WARNING "NOT FOUND: ${SPARK_FRAMEWORK_TO}/${_file}")
- endif(EXISTS "${SPARK_FRAMEWORK_TO}/${_file}")
- endforeach(_spark_file IN LISTS _spark_files)
- endmacro(spark_include)
- # 引入的所有 Spark 构建模块
- spark_framework_from_git(
- PREFIX
- http://gitee.com/zinface/
- COMPONENTS
- spark.assets-icon
- spark.env
- spark.macros
- spark.find-qt5
- spark.find-qt6
- spark.find-dtk
- spark.find-library
- spark.macros-extend
- spark.build-graphviz
- spark.framework
- spark.cmake-info
- spark.external-project
- spark.translator-macro
- spark.install-macros
- spark.desktop-macro
- spark.deb-package
- spark.appimage-macros-online
- )
- # include(cmake/SparkWithGit.cmake)
- # 用于 spark_include 引入相关的列表项,每一项都是可引用的构建模块
- # spark_include(
- # SparkEnvConfig.cmake
- # SparkMacrosConfig.cmake
- # SparkFindQt5Config.cmake
- # SparkFindQt6Config.cmake
- # SparkFindDtkConfig.cmake
- # SparkFindLibraries.cmake
- # SparkMacrosExtendConfig.cmake
- # SparkFramework.cmake
- # SparkCMakeInfoAfterConfig.cmake
- # SparkCMakeInfoBeforeConfig.cmake
- # SparkExternalProject.cmake
- # SparkTranslatorConfig.cmake
- # SparkInstallMacrosConfig.cmake
- # SparkBuildGraphviz.cmake
- # SparkDesktopMacros.cmake
- # SparkDebPackageConfig.cmake
- # SparkAppimageConfig.cmake
- # )
|