spark: 添加 SparkExternalProject.cmake 以提供外部项目构建支持

This commit is contained in:
zinface 2023-03-30 17:33:59 +08:00
parent 9459ad6e6e
commit 794f6ad7bf
1 changed files with 88 additions and 0 deletions

View File

@ -0,0 +1,88 @@
# SparkExternalProject.cmake
#
# Linux
include(ExternalProject)
# spark_add_external_git_cmake_project
# git CMake
# 使 ExternalProject_Add
#
# prj - _git
# prj_git
# prj_cfg 使 "" )
# prj_bld 使 "" )
# prj_inl 使 "" )
# ARGN ExternalProject_Add
# 使
# ${prj}-source
# ${prj}-build
# ${prj}-install
#
# ""
# 使 "A;B;C"
# prj_cfg
# "-DCMAKE_BUILD_TYPE=Release"
# "-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=\${prj_install}"
# : \${prj_install} ${prj_install}
# prj_install
# ${prj_install}
# prj_bld
# "--config Release -- -j12"
# 使 ';' "--config;Release;--;-j12"
# 使 ';' cmake
# ARGN
# ExternalProject_Add
function(spark_add_external_git_cmake_project prj prj_git prj_cfg prj_bld prj_inl)
set(prefix "3rlib")
set(prj_source "3rlib/src/${prj}")
set(prj_build "3rlib/src/${prj}-build")
set(prj_install "3rlib/src/${prj}-install")
set(prj_source "${CMAKE_CURRENT_BINARY_DIR}/${prj_source}")
set(prj_build "${CMAKE_CURRENT_BINARY_DIR}/${prj_build}")
set(prj_install "${CMAKE_CURRENT_BINARY_DIR}/${prj_install}")
include(ExternalProject)
ExternalProject_Add(${prj}
PREFIX ${prefix}
GIT_REPOSITORY ${prj_git}
CONFIGURE_COMMAND ${CMAKE_COMMAND} -S ${prj_source} -B ${prj_build} ${prj_cfg}
BUILD_COMMAND ${CMAKE_COMMAND} --build ${prj_build} ${prj_bld}
INSTALL_COMMAND ${CMAKE_COMMAND} --install ${prj_build}
--prefix ${prj_install} ${prj_inl}
${ARGN}
)
set(${prj}-source "${prj_source}" PARENT_SCOPE)
set(${prj}-build "${prj_build}" PARENT_SCOPE)
set(${prj}-install "${prj_install}" PARENT_SCOPE)
endfunction(spark_add_external_git_cmake_project prj prj_git prj_cfg prj_bld prj_inl)
# spark_add_external_git_cmake_project(lxqt-build-tool
# https://www.gitlink.org.cn/zinface/lxqt-build-tools.git
# "" #
# "" #
# "" #
# GIT_SHALLOW TRUE)
# spark_add_external_git_cmake_project(qtermwidget_git
# https://www.gitlink.org.cn/zinface/qtermwidget.git
# #
# "-DCMAKE_PREFIX_PATH=${lxqt-build-tool-install};-DCMAKE_INSTALL_PREFIX=\${prj_install}"
# #
# "--;-j12"
# #
# ""
# GIT_SHALLOW TRUE)