常规更新

This commit is contained in:
2026-07-22 10:58:59 +08:00
parent 1b19ec2632
commit 62e106564a
5 changed files with 555 additions and 99 deletions
+121
View File
@@ -0,0 +1,121 @@
# CMake 调试 / try_compile / 查找库 相关选项整理
## 1️⃣ try_compile / 编译测试相关
| 选项 / 变量 | 类型 | 示例 | 作用 |
|---|---|---|---|
| `--debug-trycompile` | 命令行 | `cmake --debug-trycompile -S . -B build` | 不删除 `try_compile()` / `try_run()` 生成的测试工程 |
| `CMAKE_TRY_COMPILE_CONFIGURATION` | 变量 | `-DCMAKE_TRY_COMPILE_CONFIGURATION=Debug` | 指定 try_compile 使用的构建类型 |
| `CMAKE_TRY_COMPILE_TARGET_TYPE` | 变量 | `-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY` | 指定 try_compile 生成的目标类型 |
| `CMAKE_TRY_COMPILE_NO_PLATFORM_VARIABLES` | 变量 | `-DCMAKE_TRY_COMPILE_NO_PLATFORM_VARIABLES=ON` | try_compile 不继承平台变量 |
---
## 2️⃣ CMake 脚本执行追踪
| 选项 | 示例 | 作用 |
|---|---|---|
| `--trace` | `cmake --trace` | 打印每个执行的 CMake 指令 |
| `--trace-expand` | `cmake --trace-expand` | trace 并展开变量 |
| `--trace-source=<file>` | `cmake --trace-source=CMakeLists.txt` | 只 trace 指定文件 |
| `--trace-redirect=<file>` | `cmake --trace-redirect=trace.log` | 把 trace 输出写入文件 |
---
## 3️⃣ find_package / 查找库调试
| 选项 / 变量 | 示例 | 作用 |
|---|---|---|
| `--debug-find` | `cmake --debug-find` | 打印 `find_package` 搜索路径 |
| `CMAKE_FIND_DEBUG_MODE` | `-DCMAKE_FIND_DEBUG_MODE=ON` | 调试 find 系列命令 |
---
## 4️⃣ 日志级别控制
| 选项 | 示例 | 作用 |
|---|---|---|
| `--log-level=<level>` | `cmake --log-level=DEBUG` | 控制日志输出级别 |
| `--log-context` | `cmake --log-context` | 显示日志来源 |
| `--log-level=TRACE` | `cmake --log-level=TRACE` | 最详细日志 |
可用日志级别:
| 级别 |
|---|
| `ERROR` |
| `WARNING` |
| `NOTICE` |
| `STATUS` |
| `VERBOSE` |
| `DEBUG` |
| `TRACE` |
---
## 5️⃣ 生成系统调试
| 选项 | 示例 | 作用 |
|---|---|---|
| `--graphviz=<file>` | `cmake --graphviz=deps.dot` | 生成依赖图 |
| `--profiling-output=<file>` | `cmake --profiling-output=profile.json` | 输出配置性能分析 |
---
## 6️⃣ 常用调试组合
### 调试 try_compile
```bash
cmake --debug-trycompile -S . -B build
```
---
### 调试 find_package
```bash
cmake --debug-find
```
---
### 查看所有脚本执行
```bash
cmake --trace-expand
```
---
### 超级调试模式
```bash
cmake \
--debug-trycompile \
--trace-expand \
--debug-find \
--log-level=DEBUG
```
---
## 7️⃣ 交叉编译最常用三项
| 选项 | 作用 |
|---|---|
| `--debug-trycompile` | 查看 CMake 编译器测试 |
| `--debug-find` | 查看库搜索路径 |
| `--trace-expand` | 查看 CMake 变量和执行流程 |
---
## 8️⃣ try_compile 临时目录
CMake 的编译测试通常生成在:
```
build/CMakeFiles/CMakeTmp
```
开启 `--debug-trycompile` 后该目录不会被删除,方便调试编译问题。
+1
View File
@@ -5,4 +5,5 @@ include("${CMAKE_CURRENT_LIST_DIR}/computer_graphics.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/libarchive.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/with_qt.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/osg_earth.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/vsg_cesium.cmake")
+101 -99
View File
@@ -4,11 +4,13 @@ block()
if(WIN32 AND CMAKE_BUILD_TYPE STREQUAL "Debug")
set(suffix "d")
endif()
rcl_init(osg_earth)
rcl_set_root_dir(osg_earth "${EXTERNAL_DIR}/${G_Architecture_Name}_osg_earth")
rcl_set_build_cache_root(osg_earth "C:/b/osg_earth")
set(ctx "osg_earth")
rcl_init(${ctx})
rcl_set_root_dir(${ctx} "${EXTERNAL_DIR}/${G_Architecture_Name}_osg_earth")
rcl_set_build_cache_root(${ctx} "C:/b/osg_earth")
if(WIN32)
rcl_set_build_cache_root(osg_earth "C:/b/osg_earth")
rcl_set_build_cache_root(${ctx} "C:/b/osg_earth")
endif()
set(zlib_opts)
list(APPEND zlib_opts
@@ -16,13 +18,13 @@ block()
-DCMAKE_DEBUG_POSTFIX=d
-DZLIB_BUILD_EXAMPLES=OFF
)
_register_git_cmake_library(osg_earth
_register_git_cmake_library(${ctx}
zlib
"https://github.com/madler/zlib.git"
"v1.3.1"
)
rcl_cmake_library_set_cmake_options(osg_earth zlib ${zlib_opts})
rcl_get_effective_install_dir(osg_earth zlib ZLIB_ROOT)
rcl_cmake_library_set_cmake_options(${ctx} zlib ${zlib_opts})
rcl_get_effective_install_dir(${ctx} zlib ZLIB_ROOT)
set(ZLIB_DEBUG_SUFFIX)
if (MSVC AND CMAKE_BUILD_TYPE STREQUAL "Debug")
set(ZLIB_DEBUG_SUFFIX "d")
@@ -38,7 +40,7 @@ block()
set(ZLIB_LIBRARY "${ZLIB_ROOT}/lib/libz.so")
endif ()
set(ZLIB_LIBRARIES "${ZLIB_LIBRARY}")
rcl_cmake_library_set_other_use_opt(osg_earth zlib
rcl_cmake_library_set_other_use_opt(${ctx} zlib
"-DCMAKE_PREFIX_PATH=\"${ZLIB_ROOT}\""
"-DZLIB_ROOT=\"${ZLIB_ROOT}\""
"-DZLIB_INCLUDE_DIR=\"${ZLIB_INCLUDE_DIR}\""
@@ -47,7 +49,7 @@ block()
"-DZLIB_LIBRARY_DEBUG=\"${ZLIB_LIBRARY_DEBUG}\""
"-DZLIB_LIBRARY_RELEASE=\"${ZLIB_LIBRARY_RELEASE}\""
)
rcl_cmake_library_set_init_script(osg_earth zlib
rcl_cmake_library_set_init_script(${ctx} zlib
"list(APPEND CMAKE_PREFIX_PATH \"${ZLIB_ROOT}\")"
"set(ZLIB_ROOT \"${ZLIB_ROOT}\")"
"set(ZLIB_INCLUDE_DIR \"${ZLIB_INCLUDE_DIR}\")"
@@ -56,7 +58,7 @@ block()
"set(ZLIB_LIBRARY_DEBUG \"${ZLIB_LIBRARY_DEBUG}\")"
"set(ZLIB_LIBRARY_RELEASE \"${ZLIB_LIBRARY_RELEASE}\")"
)
rcl_cmake_library_set_clear_script(osg_earth zlib
rcl_cmake_library_set_clear_script(${ctx} zlib
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${ZLIB_ROOT}\")"
"unset(ZLIB_ROOT)"
"unset(ZLIB_INCLUDE_DIR)"
@@ -78,14 +80,14 @@ block()
"-DZLIB_INCLUDE_DIR=${ZLIB_INCLUDE_DIR}"
"-DZLIB_LIBRARY=${ZLIB_LIBRARY}"
)
_register_git_cmake_library(osg_earth
_register_git_cmake_library(${ctx}
png
"https://github.com/pnggroup/libpng.git"
"v1.6.50"
)
rcl_cmake_library_set_cmake_options(osg_earth png ${png_opts})
rcl_cmake_library_set_deps(osg_earth png zlib)
rcl_get_effective_install_dir(osg_earth png PNG_ROOT)
rcl_cmake_library_set_cmake_options(${ctx} png ${png_opts})
rcl_cmake_library_set_deps(${ctx} png zlib)
rcl_get_effective_install_dir(${ctx} png PNG_ROOT)
set(PNG_INCLUDE_DIR "${PNG_ROOT}/include")
set(PNG_PNG_INCLUDE_DIR "${PNG_ROOT}/include")
if (MSVC)
@@ -96,7 +98,7 @@ block()
set(PNG_LIBRARIES "${PNG_LIBRARY}")
set(PNG_LIBRARY_DEBUG "${PNG_LIBRARY}")
set(PNG_LIBRARY_RELEASE "${PNG_LIBRARY}")
rcl_cmake_library_set_other_use_opt(osg_earth png
rcl_cmake_library_set_other_use_opt(${ctx} png
"-DCMAKE_PREFIX_PATH=\"${PNG_ROOT}\""
"-DPNG_ROOT=\"${PNG_ROOT}\""
"-DPNG_INCLUDE_DIR=\"${PNG_INCLUDE_DIR}\""
@@ -106,7 +108,7 @@ block()
"-DPNG_LIBRARY_DEBUG=\"${PNG_LIBRARY_DEBUG}\""
"-DPNG_LIBRARY_RELEASE=\"${PNG_LIBRARY_RELEASE}\""
)
rcl_cmake_library_set_init_script(osg_earth png
rcl_cmake_library_set_init_script(${ctx} png
"list(APPEND CMAKE_PREFIX_PATH \"${PNG_ROOT}\")"
"set(PNG_ROOT \"${PNG_ROOT}\")"
"set(PNG_INCLUDE_DIR \"${PNG_INCLUDE_DIR}\")"
@@ -116,7 +118,7 @@ block()
"set(PNG_LIBRARY_DEBUG \"${PNG_LIBRARY_DEBUG}\")"
"set(PNG_LIBRARY_RELEASE \"${PNG_LIBRARY_RELEASE}\")"
)
rcl_cmake_library_set_clear_script(osg_earth png
rcl_cmake_library_set_clear_script(${ctx} png
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${PNG_ROOT}\")"
"unset(PNG_ROOT)"
"unset(PNG_INCLUDE_DIR)"
@@ -136,13 +138,13 @@ block()
-DWITH_TESTS=OFF
-DWITH_JAVA=OFF
)
_register_git_cmake_library(osg_earth
_register_git_cmake_library(${ctx}
jpeg
"https://github.com/libjpeg-turbo/libjpeg-turbo.git"
"3.1.2"
)
rcl_cmake_library_set_cmake_options(osg_earth jpeg ${jpeg_opts})
rcl_get_effective_install_dir(osg_earth jpeg JPEG_ROOT)
rcl_cmake_library_set_cmake_options(${ctx} jpeg ${jpeg_opts})
rcl_get_effective_install_dir(${ctx} jpeg JPEG_ROOT)
set(JPEG_INCLUDE_DIR "${JPEG_ROOT}/include")
if (MSVC)
set(JPEG_LIBRARY "${JPEG_ROOT}/lib/jpeg.lib")
@@ -152,7 +154,7 @@ block()
set(JPEG_LIBRARIES "${JPEG_LIBRARY}")
set(JPEG_LIBRARY_DEBUG "${JPEG_LIBRARY}")
set(JPEG_LIBRARY_RELEASE "${JPEG_LIBRARY}")
rcl_cmake_library_set_other_use_opt(osg_earth jpeg
rcl_cmake_library_set_other_use_opt(${ctx} jpeg
"-DCMAKE_PREFIX_PATH=\"${JPEG_ROOT}\""
"-DJPEG_ROOT=\"${JPEG_ROOT}\""
"-DJPEG_INCLUDE_DIR=\"${JPEG_INCLUDE_DIR}\""
@@ -161,7 +163,7 @@ block()
"-DJPEG_LIBRARY_DEBUG=\"${JPEG_LIBRARY_DEBUG}\""
"-DJPEG_LIBRARY_RELEASE=\"${JPEG_LIBRARY_RELEASE}\""
)
rcl_cmake_library_set_init_script(osg_earth jpeg
rcl_cmake_library_set_init_script(${ctx} jpeg
"list(APPEND CMAKE_PREFIX_PATH \"${JPEG_ROOT}\")"
"set(JPEG_ROOT \"${JPEG_ROOT}\")"
"set(JPEG_INCLUDE_DIR \"${JPEG_INCLUDE_DIR}\")"
@@ -170,7 +172,7 @@ block()
"set(JPEG_LIBRARY_DEBUG \"${JPEG_LIBRARY_DEBUG}\")"
"set(JPEG_LIBRARY_RELEASE \"${JPEG_LIBRARY_RELEASE}\")"
)
rcl_cmake_library_set_clear_script(osg_earth jpeg
rcl_cmake_library_set_clear_script(${ctx} jpeg
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${JPEG_ROOT}\")"
"unset(JPEG_ROOT)"
"unset(JPEG_INCLUDE_DIR)"
@@ -207,14 +209,14 @@ block()
"-DJPEG_INCLUDE_DIR=${JPEG_INCLUDE_DIR}"
"-DJPEG_LIBRARY=${JPEG_LIBRARY}"
)
_register_git_cmake_library(osg_earth
_register_git_cmake_library(${ctx}
tiff
"https://github.com/libsdl-org/libtiff.git"
"v4.7.0"
)
rcl_cmake_library_set_cmake_options(osg_earth tiff ${tiff_opts})
rcl_cmake_library_set_deps(osg_earth tiff zlib jpeg)
rcl_get_effective_install_dir(osg_earth tiff TIFF_ROOT)
rcl_cmake_library_set_cmake_options(${ctx} tiff ${tiff_opts})
rcl_cmake_library_set_deps(${ctx} tiff zlib jpeg)
rcl_get_effective_install_dir(${ctx} tiff TIFF_ROOT)
set(TIFF_INCLUDE_DIR "${TIFF_ROOT}/include")
if (MSVC)
set(TIFF_LIBRARY_DEBUG "${TIFF_ROOT}/lib/tiffd.lib")
@@ -230,7 +232,7 @@ block()
set(TIFF_LIBRARY "${TIFF_ROOT}/lib/libtiff.so")
endif ()
set(TIFF_LIBRARIES "${TIFF_LIBRARY}")
rcl_cmake_library_set_other_use_opt(osg_earth tiff
rcl_cmake_library_set_other_use_opt(${ctx} tiff
"-DCMAKE_PREFIX_PATH=\"${TIFF_ROOT}\""
"-DTIFF_ROOT=\"${TIFF_ROOT}\""
"-DTIFF_INCLUDE_DIR=\"${TIFF_INCLUDE_DIR}\""
@@ -239,7 +241,7 @@ block()
"-DTIFF_LIBRARY_DEBUG=\"${TIFF_LIBRARY_DEBUG}\""
"-DTIFF_LIBRARY_RELEASE=\"${TIFF_LIBRARY_RELEASE}\""
)
rcl_cmake_library_set_init_script(osg_earth tiff
rcl_cmake_library_set_init_script(${ctx} tiff
"list(APPEND CMAKE_PREFIX_PATH \"${TIFF_ROOT}\")"
"set(TIFF_ROOT \"${TIFF_ROOT}\")"
"set(TIFF_INCLUDE_DIR \"${TIFF_INCLUDE_DIR}\")"
@@ -248,7 +250,7 @@ block()
"set(TIFF_LIBRARY_DEBUG \"${TIFF_LIBRARY_DEBUG}\")"
"set(TIFF_LIBRARY_RELEASE \"${TIFF_LIBRARY_RELEASE}\")"
)
rcl_cmake_library_set_clear_script(osg_earth tiff
rcl_cmake_library_set_clear_script(${ctx} tiff
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${TIFF_ROOT}\")"
"unset(TIFF_ROOT)"
"unset(TIFF_INCLUDE_DIR)"
@@ -277,14 +279,14 @@ block()
"-DPNG_PNG_INCLUDE_DIR=${PNG_PNG_INCLUDE_DIR}"
"-DPNG_LIBRARY=${PNG_LIBRARY}"
)
_register_git_cmake_library(osg_earth
_register_git_cmake_library(${ctx}
freetype
"https://github.com/freetype/freetype.git"
"VER-2-14-3"
)
rcl_cmake_library_set_cmake_options(osg_earth freetype ${freetype_opts})
rcl_cmake_library_set_deps(osg_earth freetype zlib png)
rcl_get_effective_install_dir(osg_earth freetype FREETYPE_ROOT)
rcl_cmake_library_set_cmake_options(${ctx} freetype ${freetype_opts})
rcl_cmake_library_set_deps(${ctx} freetype zlib png)
rcl_get_effective_install_dir(${ctx} freetype FREETYPE_ROOT)
set(FREETYPE_INCLUDE_DIRS "${FREETYPE_ROOT}/include/freetype2")
set(FREETYPE_INCLUDE_DIR_freetype2 "${FREETYPE_ROOT}/include/freetype2")
set(FREETYPE_INCLUDE_DIR_ft2build "${FREETYPE_ROOT}/include/freetype2")
@@ -296,7 +298,7 @@ block()
set(FREETYPE_LIBRARIES "${FREETYPE_LIBRARY}")
set(FREETYPE_LIBRARY_DEBUG "${FREETYPE_LIBRARY}")
set(FREETYPE_LIBRARY_RELEASE "${FREETYPE_LIBRARY}")
rcl_cmake_library_set_other_use_opt(osg_earth freetype
rcl_cmake_library_set_other_use_opt(${ctx} freetype
"-DCMAKE_PREFIX_PATH=\"${FREETYPE_ROOT}\""
"-DFREETYPE_ROOT=\"${FREETYPE_ROOT}\""
"-DFREETYPE_INCLUDE_DIRS=\"${FREETYPE_INCLUDE_DIRS}\""
@@ -307,7 +309,7 @@ block()
"-DFREETYPE_LIBRARY_DEBUG=\"${FREETYPE_LIBRARY_DEBUG}\""
"-DFREETYPE_LIBRARY_RELEASE=\"${FREETYPE_LIBRARY_RELEASE}\""
)
rcl_cmake_library_set_init_script(osg_earth freetype
rcl_cmake_library_set_init_script(${ctx} freetype
"list(APPEND CMAKE_PREFIX_PATH \"${FREETYPE_ROOT}\")"
"set(FREETYPE_ROOT \"${FREETYPE_ROOT}\")"
"set(FREETYPE_INCLUDE_DIRS \"${FREETYPE_INCLUDE_DIRS}\")"
@@ -318,7 +320,7 @@ block()
"set(FREETYPE_LIBRARY_DEBUG \"${FREETYPE_LIBRARY_DEBUG}\")"
"set(FREETYPE_LIBRARY_RELEASE \"${FREETYPE_LIBRARY_RELEASE}\")"
)
rcl_cmake_library_set_clear_script(osg_earth freetype
rcl_cmake_library_set_clear_script(${ctx} freetype
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${FREETYPE_ROOT}\")"
"unset(FREETYPE_ROOT)"
"unset(FREETYPE_INCLUDE_DIRS)"
@@ -340,13 +342,13 @@ block()
-DSQLITE_ENABLE_FTS5=ON
-DSQLITE_OMIT_JSON=OFF
)
_register_git_cmake_library(osg_earth
_register_git_cmake_library(${ctx}
sqlite3
"https://github.com/azadkuh/sqlite-amalgamation.git"
"master"
)
rcl_cmake_library_set_cmake_options(osg_earth sqlite3 ${sqlite3_opts})
rcl_get_effective_install_dir(osg_earth sqlite3 SQLITE3_ROOT)
rcl_cmake_library_set_cmake_options(${ctx} sqlite3 ${sqlite3_opts})
rcl_get_effective_install_dir(${ctx} sqlite3 SQLITE3_ROOT)
set(SQLITE3_INCLUDE_DIR "${SQLITE3_ROOT}/include")
if (MSVC)
set(SQLITE3_LIBRARY "${SQLITE3_ROOT}/lib/sqlite3${suffix}.lib")
@@ -355,7 +357,7 @@ block()
set(SQLITE3_LIBRARY "${SQLITE3_ROOT}/lib/libsqlite3.a")
set(SQLITE3_EXECUTABLE "${SQLITE3_ROOT}/bin/sqlite3")
endif ()
rcl_cmake_library_set_other_use_opt(osg_earth sqlite3
rcl_cmake_library_set_other_use_opt(${ctx} sqlite3
"-DCMAKE_PREFIX_PATH=\"${SQLITE3_ROOT}\""
"-DSQLite3_ROOT=\"${SQLITE3_ROOT}\""
"-DSQLite3_INCLUDE_DIR=\"${SQLITE3_INCLUDE_DIR}\""
@@ -365,7 +367,7 @@ block()
"-DSQLite3_EXECUTABLE=\"${SQLITE3_EXECUTABLE}\""
"-DEXE_SQLITE3=\"${SQLITE3_EXECUTABLE}\""
)
rcl_cmake_library_set_init_script(osg_earth sqlite3
rcl_cmake_library_set_init_script(${ctx} sqlite3
"list(APPEND CMAKE_PREFIX_PATH \"${SQLITE3_ROOT}\")"
"set(SQLite3_ROOT \"${SQLITE3_ROOT}\")"
"set(SQLite3_INCLUDE_DIR \"${SQLITE3_INCLUDE_DIR}\")"
@@ -375,7 +377,7 @@ block()
"set(SQLite3_EXECUTABLE \"${SQLITE3_EXECUTABLE}\")"
"set(EXE_SQLITE3 \"${SQLITE3_EXECUTABLE}\")"
)
rcl_cmake_library_set_clear_script(osg_earth sqlite3
rcl_cmake_library_set_clear_script(${ctx} sqlite3
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${SQLITE3_ROOT}\")"
"unset(SQLite3_ROOT)"
"unset(SQLite3_INCLUDE_DIR)"
@@ -409,25 +411,25 @@ block()
"-DZLIB_INCLUDE_DIR=${ZLIB_INCLUDE_DIR}"
"-DZLIB_LIBRARY=${ZLIB_LIBRARY}"
)
_register_git_cmake_library(osg_earth
_register_git_cmake_library(${ctx}
libzip
"https://github.com/nih-at/libzip.git"
"v1.11.4"
)
rcl_cmake_library_set_cmake_options(osg_earth libzip ${libzip_opts})
rcl_cmake_library_set_deps(osg_earth libzip zlib)
rcl_get_effective_install_dir(osg_earth libzip LIBZIP_ROOT)
rcl_cmake_library_set_other_use_opt(osg_earth libzip
rcl_cmake_library_set_cmake_options(${ctx} libzip ${libzip_opts})
rcl_cmake_library_set_deps(${ctx} libzip zlib)
rcl_get_effective_install_dir(${ctx} libzip LIBZIP_ROOT)
rcl_cmake_library_set_other_use_opt(${ctx} libzip
"-DCMAKE_PREFIX_PATH=\"${LIBZIP_ROOT}\""
"-DLibZip_ROOT=\"${LIBZIP_ROOT}\""
"-DLIBZIP_ROOT=\"${LIBZIP_ROOT}\""
)
rcl_cmake_library_set_init_script(osg_earth libzip
rcl_cmake_library_set_init_script(${ctx} libzip
"list(APPEND CMAKE_PREFIX_PATH \"${LIBZIP_ROOT}\")"
"set(LibZip_ROOT \"${LIBZIP_ROOT}\")"
"set(LIBZIP_ROOT \"${LIBZIP_ROOT}\")"
)
rcl_cmake_library_set_clear_script(osg_earth libzip
rcl_cmake_library_set_clear_script(${ctx} libzip
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${LIBZIP_ROOT}\")"
"unset(LibZip_ROOT)"
"unset(LIBZIP_ROOT)"
@@ -448,25 +450,25 @@ block()
"-DZLIB_INCLUDE_DIR=${ZLIB_INCLUDE_DIR}"
"-DZLIB_LIBRARY=${ZLIB_LIBRARY}"
)
_register_git_cmake_library(osg_earth
_register_git_cmake_library(${ctx}
protobuf
"https://github.com/protocolbuffers/protobuf.git"
"v21.12"
)
rcl_cmake_library_set_cmake_options(osg_earth protobuf ${protobuf_opts})
rcl_cmake_library_set_deps(osg_earth protobuf zlib)
rcl_get_effective_install_dir(osg_earth protobuf PROTOBUF_ROOT)
rcl_cmake_library_set_other_use_opt(osg_earth protobuf
rcl_cmake_library_set_cmake_options(${ctx} protobuf ${protobuf_opts})
rcl_cmake_library_set_deps(${ctx} protobuf zlib)
rcl_get_effective_install_dir(${ctx} protobuf PROTOBUF_ROOT)
rcl_cmake_library_set_other_use_opt(${ctx} protobuf
"-DCMAKE_PREFIX_PATH=\"${PROTOBUF_ROOT}\""
"-DProtobuf_ROOT=\"${PROTOBUF_ROOT}\""
"-DProtobuf_DIR=\"${PROTOBUF_ROOT}/lib/cmake/protobuf\""
)
rcl_cmake_library_set_init_script(osg_earth protobuf
rcl_cmake_library_set_init_script(${ctx} protobuf
"list(APPEND CMAKE_PREFIX_PATH \"${PROTOBUF_ROOT}\")"
"set(Protobuf_ROOT \"${PROTOBUF_ROOT}\")"
"set(Protobuf_DIR \"${PROTOBUF_ROOT}/lib/cmake/protobuf\")"
)
rcl_cmake_library_set_clear_script(osg_earth protobuf
rcl_cmake_library_set_clear_script(${ctx} protobuf
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${PROTOBUF_ROOT}\")"
"unset(Protobuf_ROOT)"
"unset(Protobuf_DIR)"
@@ -479,24 +481,24 @@ block()
-DBUILD_DOCUMENTATION=OFF
-DBUILD_GEOSOP=OFF
)
_register_git_cmake_library(osg_earth
_register_git_cmake_library(${ctx}
geos
"https://github.com/libgeos/geos.git"
"3.13.1"
)
rcl_cmake_library_set_cmake_options(osg_earth geos ${geos_opts})
rcl_get_effective_install_dir(osg_earth geos GEOS_ROOT)
rcl_cmake_library_set_other_use_opt(osg_earth geos
rcl_cmake_library_set_cmake_options(${ctx} geos ${geos_opts})
rcl_get_effective_install_dir(${ctx} geos GEOS_ROOT)
rcl_cmake_library_set_other_use_opt(${ctx} geos
"-DCMAKE_PREFIX_PATH=\"${GEOS_ROOT}\""
"-DGEOS_ROOT=\"${GEOS_ROOT}\""
"-Dgeos_DIR=\"${GEOS_ROOT}/lib/cmake/GEOS\""
)
rcl_cmake_library_set_init_script(osg_earth geos
rcl_cmake_library_set_init_script(${ctx} geos
"list(APPEND CMAKE_PREFIX_PATH \"${GEOS_ROOT}\")"
"set(GEOS_ROOT \"${GEOS_ROOT}\")"
"set(geos_DIR \"${GEOS_ROOT}/lib/cmake/GEOS\")"
)
rcl_cmake_library_set_clear_script(osg_earth geos
rcl_cmake_library_set_clear_script(${ctx} geos
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${GEOS_ROOT}\")"
"unset(GEOS_ROOT)"
"unset(geos_DIR)"
@@ -531,14 +533,14 @@ block()
-DUSE_WIN32_IDN=ON
)
endif ()
_register_git_cmake_library(osg_earth
_register_git_cmake_library(${ctx}
curl
"https://github.com/curl/curl.git"
"curl-8_21_0"
)
rcl_cmake_library_set_cmake_options(osg_earth curl ${curl_opts})
rcl_cmake_library_set_deps(osg_earth curl zlib)
rcl_get_effective_install_dir(osg_earth curl CURL_ROOT)
rcl_cmake_library_set_cmake_options(${ctx} curl ${curl_opts})
rcl_cmake_library_set_deps(${ctx} curl zlib)
rcl_get_effective_install_dir(${ctx} curl CURL_ROOT)
if (MSVC)
set(CURL_LIBRARY_DEBUG "${CURL_ROOT}/lib/libcurl-d_imp.lib")
set(CURL_LIBRARY_RELEASE "${CURL_ROOT}/lib/libcurl_imp.lib")
@@ -553,7 +555,7 @@ block()
set(CURL_LIBRARY "${CURL_ROOT}/lib/libcurl.so")
endif ()
set(CURL_LIBRARIES "${CURL_LIBRARY}")
rcl_cmake_library_set_other_use_opt(osg_earth curl
rcl_cmake_library_set_other_use_opt(${ctx} curl
"-DCMAKE_PREFIX_PATH=\"${CURL_ROOT}\""
"-DCURL_ROOT=\"${CURL_ROOT}\""
"-DCURL_LIBRARY=\"${CURL_LIBRARY}\""
@@ -561,7 +563,7 @@ block()
"-DCURL_LIBRARY_DEBUG=\"${CURL_LIBRARY_DEBUG}\""
"-DCURL_LIBRARY_RELEASE=\"${CURL_LIBRARY_RELEASE}\""
)
rcl_cmake_library_set_init_script(osg_earth curl
rcl_cmake_library_set_init_script(${ctx} curl
"list(APPEND CMAKE_PREFIX_PATH \"${CURL_ROOT}\")"
"set(CURL_ROOT \"${CURL_ROOT}\")"
"set(CURL_LIBRARY \"${CURL_LIBRARY}\")"
@@ -569,7 +571,7 @@ block()
"set(CURL_LIBRARY_DEBUG \"${CURL_LIBRARY_DEBUG}\")"
"set(CURL_LIBRARY_RELEASE \"${CURL_LIBRARY_RELEASE}\")"
)
rcl_cmake_library_set_clear_script(osg_earth curl
rcl_cmake_library_set_clear_script(${ctx} curl
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${CURL_ROOT}\")"
"unset(CURL_ROOT)"
"unset(CURL_LIBRARY)"
@@ -596,23 +598,23 @@ block()
"-DTIFF_INCLUDE_DIR=${TIFF_INCLUDE_DIR}"
"-DTIFF_LIBRARY=${TIFF_LIBRARY}"
)
_register_git_cmake_library(osg_earth
_register_git_cmake_library(${ctx}
proj
"https://github.com/OSGeo/PROJ.git"
"9.4.1"
)
rcl_cmake_library_set_cmake_options(osg_earth proj ${proj_opts})
rcl_cmake_library_set_deps(osg_earth proj sqlite3 curl tiff)
rcl_get_effective_install_dir(osg_earth proj PROJ_ROOT)
rcl_cmake_library_set_other_use_opt(osg_earth proj
rcl_cmake_library_set_cmake_options(${ctx} proj ${proj_opts})
rcl_cmake_library_set_deps(${ctx} proj sqlite3 curl tiff)
rcl_get_effective_install_dir(${ctx} proj PROJ_ROOT)
rcl_cmake_library_set_other_use_opt(${ctx} proj
"-DCMAKE_PREFIX_PATH=\"${PROJ_ROOT}\""
"-DPROJ_ROOT=\"${PROJ_ROOT}\""
)
rcl_cmake_library_set_init_script(osg_earth proj
rcl_cmake_library_set_init_script(${ctx} proj
"list(APPEND CMAKE_PREFIX_PATH \"${PROJ_ROOT}\")"
"set(PROJ_ROOT \"${PROJ_ROOT}\")"
)
rcl_cmake_library_set_clear_script(osg_earth proj
rcl_cmake_library_set_clear_script(${ctx} proj
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${PROJ_ROOT}\")"
"unset(PROJ_ROOT)"
)
@@ -657,14 +659,14 @@ block()
"-DPROJ_ROOT=${PROJ_ROOT}"
"-DGEOS_ROOT=${GEOS_ROOT}"
)
_register_git_cmake_library(osg_earth
_register_git_cmake_library(${ctx}
gdal
"https://github.com/OSGeo/gdal.git"
"v3.9.3"
)
rcl_cmake_library_set_cmake_options(osg_earth gdal ${gdal_opts})
rcl_cmake_library_set_deps(osg_earth gdal zlib png jpeg tiff curl sqlite3 proj geos)
rcl_get_effective_install_dir(osg_earth gdal GDAL_ROOT)
rcl_cmake_library_set_cmake_options(${ctx} gdal ${gdal_opts})
rcl_cmake_library_set_deps(${ctx} gdal zlib png jpeg tiff curl sqlite3 proj geos)
rcl_get_effective_install_dir(${ctx} gdal GDAL_ROOT)
set(GDAL_INCLUDE_DIR "${GDAL_ROOT}/include")
if (MSVC)
set(GDAL_LIBRARY_DEBUG "${GDAL_ROOT}/lib/gdald.lib")
@@ -680,7 +682,7 @@ block()
set(GDAL_LIBRARY "${GDAL_ROOT}/lib/libgdal.so")
endif ()
set(GDAL_LIBRARIES "${GDAL_LIBRARY}")
rcl_cmake_library_set_other_use_opt(osg_earth gdal
rcl_cmake_library_set_other_use_opt(${ctx} gdal
"-DCMAKE_PREFIX_PATH=\"${GDAL_ROOT}\""
"-DGDAL_ROOT=\"${GDAL_ROOT}\""
"-DGDAL_INCLUDE_DIR=\"${GDAL_INCLUDE_DIR}\""
@@ -689,7 +691,7 @@ block()
"-DGDAL_LIBRARY_DEBUG=\"${GDAL_LIBRARY_DEBUG}\""
"-DGDAL_LIBRARY_RELEASE=\"${GDAL_LIBRARY_RELEASE}\""
)
rcl_cmake_library_set_init_script(osg_earth gdal
rcl_cmake_library_set_init_script(${ctx} gdal
"list(APPEND CMAKE_PREFIX_PATH \"${GDAL_ROOT}\")"
"set(GDAL_ROOT \"${GDAL_ROOT}\")"
"set(GDAL_INCLUDE_DIR \"${GDAL_INCLUDE_DIR}\")"
@@ -698,7 +700,7 @@ block()
"set(GDAL_LIBRARY_DEBUG \"${GDAL_LIBRARY_DEBUG}\")"
"set(GDAL_LIBRARY_RELEASE \"${GDAL_LIBRARY_RELEASE}\")"
)
rcl_cmake_library_set_clear_script(osg_earth gdal
rcl_cmake_library_set_clear_script(${ctx} gdal
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${GDAL_ROOT}\")"
"unset(GDAL_ROOT)"
"unset(GDAL_INCLUDE_DIR)"
@@ -760,19 +762,19 @@ block()
if (MSVC)
list(APPEND osg_opts -DWIN32_USE_MP=ON)
endif ()
_register_git_cmake_library(osg_earth
_register_git_cmake_library(${ctx}
openscenegraph
"https://github.com/openscenegraph/OpenSceneGraph.git"
"OpenSceneGraph-3.6.5"
)
rcl_cmake_library_add_patch_url(osg_earth openscenegraph
rcl_cmake_library_add_patch_url(${ctx} openscenegraph
"https://github.com/openscenegraph/OpenSceneGraph/pull/973.patch"
"001-pr-973-msvc-ninja-pdb.patch"
""
)
rcl_cmake_library_set_cmake_options(osg_earth openscenegraph ${osg_opts})
rcl_cmake_library_set_deps(osg_earth openscenegraph zlib png jpeg tiff freetype curl gdal)
rcl_get_effective_install_dir(osg_earth openscenegraph OSG_ROOT)
rcl_cmake_library_set_cmake_options(${ctx} openscenegraph ${osg_opts})
rcl_cmake_library_set_deps(${ctx} openscenegraph zlib png jpeg tiff freetype curl gdal)
rcl_get_effective_install_dir(${ctx} openscenegraph OSG_ROOT)
set(OSG_DEBUG_SUFFIX)
if (MSVC AND CMAKE_BUILD_TYPE STREQUAL "Debug")
set(OSG_DEBUG_SUFFIX "d")
@@ -835,9 +837,9 @@ block()
"unset(${OSG_COMPONENT_LIBRARY_VAR})"
)
endforeach ()
rcl_cmake_library_set_other_use_opt(osg_earth openscenegraph ${osg_other_use_opt})
rcl_cmake_library_set_init_script(osg_earth openscenegraph ${osg_init_script})
rcl_cmake_library_set_clear_script(osg_earth openscenegraph ${osg_clear_script})
rcl_cmake_library_set_other_use_opt(${ctx} openscenegraph ${osg_other_use_opt})
rcl_cmake_library_set_init_script(${ctx} openscenegraph ${osg_init_script})
rcl_cmake_library_set_clear_script(${ctx} openscenegraph ${osg_clear_script})
set(OSGEARTH_PREFIX_PATH
"${OSG_ROOT}"
"${SQLITE3_ROOT}"
@@ -893,14 +895,14 @@ block()
if (WIN32)
list(APPEND osgearth_opts -DOSGEARTH_INSTALL_PDBS=ON)
endif ()
_register_git_cmake_library(osg_earth
_register_git_cmake_library(${ctx}
osgearth
"https://github.com/pelicanmapping/osgearth.git"
"osgearth-3.8.1"
)
rcl_cmake_library_set_cmake_options(osg_earth osgearth ${osgearth_opts})
rcl_cmake_library_set_deps(osg_earth osgearth openscenegraph sqlite3 curl proj gdal libzip protobuf geos zlib png jpeg tiff freetype)
rcl_get_effective_install_dir(osg_earth osgearth OSGEARTH_ROOT)
rcl_cmake_library_set_cmake_options(${ctx} osgearth ${osgearth_opts})
rcl_cmake_library_set_deps(${ctx} osgearth openscenegraph sqlite3 curl proj gdal libzip protobuf geos zlib png jpeg tiff freetype)
rcl_get_effective_install_dir(${ctx} osgearth OSGEARTH_ROOT)
set(osgEarth_DIR "${OSGEARTH_ROOT}/lib/cmake/osgearth")
set(OSGEARTH_DEBUG_SUFFIX)
if (MSVC AND CMAKE_BUILD_TYPE STREQUAL "Debug")
@@ -928,7 +930,7 @@ block()
"${FREETYPE_ROOT}"
)
list(JOIN OSGEARTH_USE_PREFIX_PATH "\\;" OSGEARTH_USE_PREFIX_PATH_ARG)
rcl_cmake_library_set_other_use_opt(osg_earth osgearth
rcl_cmake_library_set_other_use_opt(${ctx} osgearth
"-DCMAKE_PREFIX_PATH=\"${OSGEARTH_USE_PREFIX_PATH_ARG}\""
"-DosgEarth_DIR=\"${osgEarth_DIR}\""
"-DOSGEARTH_ROOT=\"${OSGEARTH_ROOT}\""
@@ -954,6 +956,6 @@ block()
"unset(OSGEARTH_INCLUDE_DIR)"
"unset(OSGEARTH_LIBRARY)"
)
rcl_cmake_library_set_init_script(osg_earth osgearth ${osgearth_init_script})
rcl_cmake_library_set_clear_script(osg_earth osgearth ${osgearth_clear_script})
rcl_cmake_library_set_init_script(${ctx} osgearth ${osgearth_init_script})
rcl_cmake_library_set_clear_script(${ctx} osgearth ${osgearth_clear_script})
endblock()
+331
View File
@@ -0,0 +1,331 @@
include_guard(GLOBAL)
block()
set(ctx "vsg_cesium")
rcl_init(${ctx})
rcl_set_root_dir(${ctx} "${EXTERNAL_DIR}/${G_Architecture_Name}_vsg_cesium")
if(WIN32)
set(VSG_CESIUM_BUILD_CACHE_ROOT "C:/b/vsg_cesium")
rcl_set_build_cache_root(${ctx} "${VSG_CESIUM_BUILD_CACHE_ROOT}")
endif()
rcl_get_root_dir(${ctx} VSG_CESIUM_ROOT)
if(NOT DEFINED ENV{VULKAN_SDK} OR "$ENV{VULKAN_SDK}" STREQUAL "")
message(FATAL_ERROR "VulkanSceneGraph requires VULKAN_SDK")
endif()
file(TO_CMAKE_PATH "$ENV{VULKAN_SDK}" VULKAN_SDK_ROOT)
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" system_processor)
set(CESIUM_VCPKG_OVERLAY_TRIPLETS "")
if(WIN32)
if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
message(FATAL_ERROR "vsg_cesium only supports 64-bit Windows")
endif()
if(NOT CMAKE_CXX_COMPILER)
message(FATAL_ERROR "CMAKE_CXX_COMPILER is not set")
endif()
set(CESIUM_VCPKG_TRIPLET "x64-windows-static-md")
set(CESIUM_VCPKG_CONFIG_DIR "${CMAKE_CURRENT_LIST_DIR}/generated/vsg_cesium")
set(CESIUM_VCPKG_OVERLAY_TRIPLETS "${CESIUM_VCPKG_CONFIG_DIR}/triplets")
set(CESIUM_VCPKG_CHAINLOAD_TOOLCHAIN "${CESIUM_VCPKG_CONFIG_DIR}/current_compiler.cmake")
file(MAKE_DIRECTORY "${CESIUM_VCPKG_OVERLAY_TRIPLETS}")
file(TO_CMAKE_PATH "${CMAKE_CXX_COMPILER}" CESIUM_CXX_COMPILER)
string(CONCAT CESIUM_VCPKG_CHAINLOAD_CONTENT
"set(CMAKE_CXX_COMPILER [[${CESIUM_CXX_COMPILER}]] CACHE FILEPATH \"\" FORCE)\n"
)
if(CMAKE_C_COMPILER)
file(TO_CMAKE_PATH "${CMAKE_C_COMPILER}" CESIUM_C_COMPILER)
string(PREPEND CESIUM_VCPKG_CHAINLOAD_CONTENT
"set(CMAKE_C_COMPILER [[${CESIUM_C_COMPILER}]] CACHE FILEPATH \"\" FORCE)\n"
)
endif()
if(CMAKE_RC_COMPILER)
file(TO_CMAKE_PATH "${CMAKE_RC_COMPILER}" CESIUM_RC_COMPILER)
string(APPEND CESIUM_VCPKG_CHAINLOAD_CONTENT
"set(CMAKE_RC_COMPILER [[${CESIUM_RC_COMPILER}]] CACHE FILEPATH \"\" FORCE)\n"
)
endif()
file(CONFIGURE
OUTPUT "${CESIUM_VCPKG_CHAINLOAD_TOOLCHAIN}"
CONTENT "${CESIUM_VCPKG_CHAINLOAD_CONTENT}"
@ONLY
)
string(CONCAT CESIUM_VCPKG_TRIPLET_CONTENT
"set(VCPKG_TARGET_ARCHITECTURE x64)\n"
"set(VCPKG_CRT_LINKAGE dynamic)\n"
"set(VCPKG_LIBRARY_LINKAGE static)\n"
"set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE [[${CESIUM_VCPKG_CHAINLOAD_TOOLCHAIN}]])\n"
)
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
string(FIND "${CESIUM_CXX_COMPILER}" "/VC/Tools/MSVC/" CESIUM_VS_ROOT_END)
if(CESIUM_VS_ROOT_END EQUAL -1)
message(FATAL_ERROR "Unable to determine Visual Studio root from CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
endif()
string(SUBSTRING "${CESIUM_CXX_COMPILER}" 0 ${CESIUM_VS_ROOT_END} CESIUM_VS_ROOT)
string(APPEND CESIUM_VCPKG_TRIPLET_CONTENT
"set(VCPKG_VISUAL_STUDIO_PATH [[${CESIUM_VS_ROOT}]])\n"
)
endif()
file(CONFIGURE
OUTPUT "${CESIUM_VCPKG_OVERLAY_TRIPLETS}/${CESIUM_VCPKG_TRIPLET}.cmake"
CONTENT "${CESIUM_VCPKG_TRIPLET_CONTENT}"
@ONLY
)
elseif(APPLE)
if(system_processor MATCHES "^(arm64|aarch64)$")
set(CESIUM_VCPKG_TRIPLET "arm64-osx")
else()
set(CESIUM_VCPKG_TRIPLET "x64-osx")
endif()
elseif(UNIX)
if(system_processor MATCHES "^(arm64|aarch64)$")
set(CESIUM_VCPKG_TRIPLET "arm64-linux")
else()
set(CESIUM_VCPKG_TRIPLET "x64-linux")
endif()
else()
message(FATAL_ERROR "vsg_cesium does not support this platform")
endif()
set(CESIUM_VCPKG_COMMIT "dbe35ceb30c688bf72e952ab23778e009a578f18")
if(WIN32)
set(CESIUM_EZVCPKG_BASE "${VSG_CESIUM_BUILD_CACHE_ROOT}/ezvcpkg")
else()
set(CESIUM_EZVCPKG_BASE "${VSG_CESIUM_ROOT}/ezvcpkg")
endif()
set(CESIUM_EZVCPKG_REPOSITORY "${CESIUM_EZVCPKG_BASE}/${CESIUM_VCPKG_COMMIT}")
set(CESIUM_EZVCPKG_INSTALLED "${CESIUM_EZVCPKG_REPOSITORY}/installed/${CESIUM_VCPKG_TRIPLET}")
set(CESIUM_VCPKG_TOOLCHAIN "${CESIUM_EZVCPKG_REPOSITORY}/scripts/buildsystems/vcpkg.cmake")
set(cesium_native_opts)
list(APPEND cesium_native_opts
-DCESIUM_USE_EZVCPKG=ON
-DEZVCPKG_BASEDIR=${CESIUM_EZVCPKG_BASE}
-DVCPKG_MANIFEST_MODE=OFF
-DVCPKG_TRIPLET=${CESIUM_VCPKG_TRIPLET}
-DVCPKG_TARGET_TRIPLET=${CESIUM_VCPKG_TRIPLET}
-DVCPKG_OVERLAY_TRIPLETS=${CESIUM_VCPKG_OVERLAY_TRIPLETS}
-DCESIUM_INSTALL_STATIC_LIBS=ON
-DCESIUM_INSTALL_HEADERS=ON
-DCESIUM_TESTS_ENABLED=OFF
-DCESIUM_ENABLE_CLANG_TIDY=OFF
-DCESIUM_ENABLE_CLANG_TIDY_ON_BUILD=OFF
-DCESIUM_DISABLE_CURL=OFF
-DCESIUM_TRACING_ENABLED=OFF
-DCESIUM_COVERAGE_ENABLED=OFF
-DCESIUM_MSVC_STATIC_RUNTIME_ENABLED=OFF
-DCMAKE_CXX_STANDARD=20
)
_register_git_cmake_library(${ctx}
cesium_native
"https://github.com/CesiumGS/cesium-native.git"
"v0.50.0"
)
rcl_cmake_library_set_cmake_options(${ctx} cesium_native ${cesium_native_opts})
rcl_get_effective_install_dir(${ctx} cesium_native CESIUM_NATIVE_ROOT)
set(CESIUM_NATIVE_DIR "${CESIUM_NATIVE_ROOT}/share/cesium-native/cmake")
set(CESIUM_NATIVE_USE_PREFIX_PATH
"${CESIUM_NATIVE_ROOT}"
"${CESIUM_EZVCPKG_INSTALLED}"
)
list(JOIN CESIUM_NATIVE_USE_PREFIX_PATH "\\;" CESIUM_NATIVE_USE_PREFIX_PATH_ARG)
rcl_cmake_library_set_other_use_opt(${ctx} cesium_native
"-DCMAKE_PREFIX_PATH=\"${CESIUM_NATIVE_USE_PREFIX_PATH_ARG}\""
"-DCMAKE_TOOLCHAIN_FILE=\"${CESIUM_VCPKG_TOOLCHAIN}\""
"-DVCPKG_MANIFEST_MODE=OFF"
"-DVCPKG_TARGET_TRIPLET=\"${CESIUM_VCPKG_TRIPLET}\""
"-DVCPKG_OVERLAY_TRIPLETS=\"${CESIUM_VCPKG_OVERLAY_TRIPLETS}\""
"-Dcesium-native_DIR=\"${CESIUM_NATIVE_DIR}\""
"-DCESIUM_NATIVE_ROOT=\"${CESIUM_NATIVE_ROOT}\""
"-DCESIUM_EZVCPKG_INSTALLED=\"${CESIUM_EZVCPKG_INSTALLED}\""
)
rcl_cmake_library_set_init_script(${ctx} cesium_native
"list(APPEND CMAKE_PREFIX_PATH \"${CESIUM_NATIVE_ROOT}\")"
"list(APPEND CMAKE_PREFIX_PATH \"${CESIUM_EZVCPKG_INSTALLED}\")"
"set(cesium-native_DIR \"${CESIUM_NATIVE_DIR}\")"
"set(CESIUM_NATIVE_ROOT \"${CESIUM_NATIVE_ROOT}\")"
"set(CESIUM_EZVCPKG_INSTALLED \"${CESIUM_EZVCPKG_INSTALLED}\")"
"find_package(cesium-native CONFIG REQUIRED)"
)
rcl_cmake_library_set_clear_script(${ctx} cesium_native
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${CESIUM_NATIVE_ROOT}\")"
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${CESIUM_EZVCPKG_INSTALLED}\")"
"unset(cesium-native_DIR)"
"unset(CESIUM_NATIVE_ROOT)"
"unset(CESIUM_EZVCPKG_INSTALLED)"
)
set(vsg_opts)
list(APPEND vsg_opts
-DBUILD_SHARED_LIBS=ON
-DVULKAN_SDK=${VULKAN_SDK_ROOT}
-DVSG_SUPPORTS_Windowing=ON
-DVSG_SUPPORTS_ShaderCompiler=ON
-DVSG_SUPPORTS_ShaderOptimizer=ON
-DVSG_MAX_INSTRUMENTATION_LEVEL=1
-DVSG_USE_dynamic_cast=OFF
)
_register_git_cmake_library(${ctx}
vsg
"https://github.com/vsg-dev/VulkanSceneGraph.git"
"v1.1.15"
)
rcl_cmake_library_set_cmake_options(${ctx} vsg ${vsg_opts})
rcl_get_effective_install_dir(${ctx} vsg VSG_ROOT)
set(vsg_DIR "${VSG_ROOT}/lib/cmake/vsg")
rcl_cmake_library_set_other_use_opt(${ctx} vsg
"-DCMAKE_PREFIX_PATH=\"${VSG_ROOT}\""
"-Dvsg_DIR=\"${vsg_DIR}\""
"-DVULKAN_SDK=\"${VULKAN_SDK_ROOT}\""
)
rcl_cmake_library_set_init_script(${ctx} vsg
"list(APPEND CMAKE_PREFIX_PATH \"${VSG_ROOT}\")"
"set(vsg_DIR \"${vsg_DIR}\")"
"set(VULKAN_SDK \"${VULKAN_SDK_ROOT}\")"
"find_package(vsg CONFIG REQUIRED)"
)
rcl_cmake_library_set_clear_script(${ctx} vsg
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${VSG_ROOT}\")"
"unset(vsg_DIR)"
"unset(VULKAN_SDK)"
)
set(VSGXCHANGE_PREFIX_PATH
"${VSG_ROOT}"
"${CESIUM_EZVCPKG_INSTALLED}"
"${VULKAN_SDK_ROOT}"
)
list(JOIN VSGXCHANGE_PREFIX_PATH "\\;" VSGXCHANGE_PREFIX_PATH_ARG)
set(vsgxchange_opts)
list(APPEND vsgxchange_opts
-DBUILD_SHARED_LIBS=ON
-DVULKAN_SDK=${VULKAN_SDK_ROOT}
-Dvsg_DIR=${vsg_DIR}
-DvsgXchange_OSG=OFF
-DCMAKE_TOOLCHAIN_FILE=${CESIUM_VCPKG_TOOLCHAIN}
-DVCPKG_MANIFEST_MODE=OFF
-DVCPKG_TARGET_TRIPLET=${CESIUM_VCPKG_TRIPLET}
-DVCPKG_OVERLAY_TRIPLETS=${CESIUM_VCPKG_OVERLAY_TRIPLETS}
"-DCMAKE_PREFIX_PATH=${VSGXCHANGE_PREFIX_PATH_ARG}"
)
_register_git_cmake_library(${ctx}
vsgxchange
"https://github.com/vsg-dev/vsgXchange.git"
"v1.1.13"
)
rcl_cmake_library_set_cmake_options(${ctx} vsgxchange ${vsgxchange_opts})
rcl_cmake_library_set_deps(${ctx} vsgxchange vsg cesium_native)
rcl_get_effective_install_dir(${ctx} vsgxchange VSGXCHANGE_ROOT)
set(vsgXchange_DIR "${VSGXCHANGE_ROOT}/lib/cmake/vsgXchange")
rcl_cmake_library_set_other_use_opt(${ctx} vsgxchange
"-DCMAKE_PREFIX_PATH=\"${VSGXCHANGE_ROOT}\\;${VSG_ROOT}\\;${CESIUM_EZVCPKG_INSTALLED}\""
"-DvsgXchange_DIR=\"${vsgXchange_DIR}\""
"-Dvsg_DIR=\"${vsg_DIR}\""
)
rcl_cmake_library_set_init_script(${ctx} vsgxchange
"list(APPEND CMAKE_PREFIX_PATH \"${VSGXCHANGE_ROOT}\")"
"set(vsgXchange_DIR \"${vsgXchange_DIR}\")"
"find_package(vsgXchange CONFIG REQUIRED)"
)
rcl_cmake_library_set_clear_script(${ctx} vsgxchange
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${VSGXCHANGE_ROOT}\")"
"unset(vsgXchange_DIR)"
)
set(VSGIMGUI_PREFIX_PATH
"${VSG_ROOT}"
"${VULKAN_SDK_ROOT}"
)
list(JOIN VSGIMGUI_PREFIX_PATH "\\;" VSGIMGUI_PREFIX_PATH_ARG)
set(vsgimgui_opts)
list(APPEND vsgimgui_opts
-DBUILD_SHARED_LIBS=ON
-DVULKAN_SDK=${VULKAN_SDK_ROOT}
-Dvsg_DIR=${vsg_DIR}
"-DCMAKE_PREFIX_PATH=${VSGIMGUI_PREFIX_PATH_ARG}"
)
_register_git_cmake_library(${ctx}
vsgimgui
"https://github.com/vsg-dev/vsgImGui.git"
"v0.7.0"
)
rcl_cmake_library_set_cmake_options(${ctx} vsgimgui ${vsgimgui_opts})
rcl_cmake_library_set_deps(${ctx} vsgimgui vsg)
rcl_get_effective_install_dir(${ctx} vsgimgui VSGIMGUI_ROOT)
set(vsgImGui_DIR "${VSGIMGUI_ROOT}/lib/cmake/vsgImGui")
rcl_cmake_library_set_other_use_opt(${ctx} vsgimgui
"-DCMAKE_PREFIX_PATH=\"${VSGIMGUI_ROOT}\\;${VSG_ROOT}\""
"-DvsgImGui_DIR=\"${vsgImGui_DIR}\""
"-Dvsg_DIR=\"${vsg_DIR}\""
)
rcl_cmake_library_set_init_script(${ctx} vsgimgui
"list(APPEND CMAKE_PREFIX_PATH \"${VSGIMGUI_ROOT}\")"
"set(vsgImGui_DIR \"${vsgImGui_DIR}\")"
"find_package(vsgImGui CONFIG REQUIRED)"
)
rcl_cmake_library_set_clear_script(${ctx} vsgimgui
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${VSGIMGUI_ROOT}\")"
"unset(vsgImGui_DIR)"
)
set(VSGCS_PREFIX_PATH
"${VSG_ROOT}"
"${VSGXCHANGE_ROOT}"
"${VSGIMGUI_ROOT}"
"${CESIUM_NATIVE_ROOT}"
"${CESIUM_EZVCPKG_INSTALLED}"
"${VULKAN_SDK_ROOT}"
)
list(JOIN VSGCS_PREFIX_PATH "\\;" VSGCS_PREFIX_PATH_ARG)
set(vsgcs_opts)
list(APPEND vsgcs_opts
-DBUILD_SHARED_LIBS=ON
-DVSGCS_BUILD_SHARED_LIBS=ON
-DVSGCS_USE_PROJ=ON
-DVSGCS_INSTALL_PROJ_DATA=ON
-DVSGCS_USE_SYSTEM_OPENSSL=OFF
-DRUN_CLANG_TIDY=OFF
-DBUILD_TRACY=OFF
-DVULKAN_SDK=${VULKAN_SDK_ROOT}
-Dvsg_DIR=${vsg_DIR}
-DvsgXchange_DIR=${vsgXchange_DIR}
-DvsgImGui_DIR=${vsgImGui_DIR}
-Dcesium-native_DIR=${CESIUM_NATIVE_DIR}
-DCMAKE_TOOLCHAIN_FILE=${CESIUM_VCPKG_TOOLCHAIN}
-DVCPKG_MANIFEST_MODE=OFF
-DVCPKG_TARGET_TRIPLET=${CESIUM_VCPKG_TRIPLET}
-DVCPKG_OVERLAY_TRIPLETS=${CESIUM_VCPKG_OVERLAY_TRIPLETS}
"-DCMAKE_PREFIX_PATH=${VSGCS_PREFIX_PATH_ARG}"
)
_register_git_cmake_library(${ctx}
vsgcs
"https://github.com/timoore/vsgCs.git"
"v1.2.0"
)
rcl_cmake_library_set_cmake_options(${ctx} vsgcs ${vsgcs_opts})
rcl_cmake_library_set_deps(${ctx} vsgcs vsg vsgxchange vsgimgui cesium_native)
rcl_get_effective_install_dir(${ctx} vsgcs VSGCS_ROOT)
set(vsgCs_DIR "${VSGCS_ROOT}/lib/cmake/vsgCs")
set(VSGCS_USE_PREFIX_PATH
"${VSGCS_ROOT}"
"${VSG_ROOT}"
"${VSGXCHANGE_ROOT}"
"${VSGIMGUI_ROOT}"
"${CESIUM_NATIVE_ROOT}"
"${CESIUM_EZVCPKG_INSTALLED}"
)
list(JOIN VSGCS_USE_PREFIX_PATH "\\;" VSGCS_USE_PREFIX_PATH_ARG)
rcl_cmake_library_set_other_use_opt(${ctx} vsgcs
"-DCMAKE_PREFIX_PATH=\"${VSGCS_USE_PREFIX_PATH_ARG}\""
"-DCMAKE_TOOLCHAIN_FILE=\"${CESIUM_VCPKG_TOOLCHAIN}\""
"-DVCPKG_MANIFEST_MODE=OFF"
"-DVCPKG_TARGET_TRIPLET=\"${CESIUM_VCPKG_TRIPLET}\""
"-DVCPKG_OVERLAY_TRIPLETS=\"${CESIUM_VCPKG_OVERLAY_TRIPLETS}\""
"-DvsgCs_DIR=\"${vsgCs_DIR}\""
"-Dvsg_DIR=\"${vsg_DIR}\""
"-DvsgXchange_DIR=\"${vsgXchange_DIR}\""
"-DvsgImGui_DIR=\"${vsgImGui_DIR}\""
"-Dcesium-native_DIR=\"${CESIUM_NATIVE_DIR}\""
"-DVULKAN_SDK=\"${VULKAN_SDK_ROOT}\""
)
rcl_cmake_library_set_init_script(${ctx} vsgcs
"list(APPEND CMAKE_PREFIX_PATH \"${VSGCS_ROOT}\")"
"set(vsgCs_DIR \"${vsgCs_DIR}\")"
"find_package(vsgCs CONFIG REQUIRED)"
)
rcl_cmake_library_set_clear_script(${ctx} vsgcs
"list(REMOVE_ITEM CMAKE_PREFIX_PATH \"${VSGCS_ROOT}\")"
"unset(vsgCs_DIR)"
)
endblock()
+1
View File
@@ -15,6 +15,7 @@ include(${register_dir}/export.cmake)
# 统一生成前面注册过的所有配置对象和 action target
rcl_generate_registered_cmake_libraries(global)
rcl_generate_registered_cmake_libraries(osg_earth)
rcl_generate_registered_cmake_libraries(vsg_cesium)
attach_current_source_dir()