Files
build_infra/register/base.cmake
T
psc d777714fd1 放弃 linux交叉windows 编译clang
因为 llvm clang源码cmakelist 不支持 里面汇编也不支持
2026-07-01 15:39:11 +08:00

186 lines
4.7 KiB
CMake

include_guard(GLOBAL)
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
if (NOT CMAKE_SYSROOT)
set(CMAKE_SYSROOT /)
endif ()
endif ()
if (CMAKE_SYSROOT)
list(APPEND base_options "-DCMAKE_SYSROOT=${CMAKE_SYSROOT}")
endif ()
set(zlib_opts)
list(APPEND zlib_opts "-DZLIB_BUILD_EXAMPLES=OFF")
_register_git_cmake_library(
zlib
ZLIB
https://github.com/madler/zlib.git
v1.3.1
)
rcl_get_effective_install_dir(zlib ZLIB_ROOT)
set(ZLIB_INCLUDE_DIR ${ZLIB_ROOT}/include)
if (MSVC)
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
set(ZLIB_LIBRARY "${ZLIB_ROOT}/lib/zlibstaticd.lib")
else ()
set(ZLIB_LIBRARY "${ZLIB_ROOT}/lib/zlibstatic.lib")
endif ()
else ()
set(ZLIB_LIBRARY ${ZLIB_ROOT}/lib/libz.a)
endif ()
rcl_cmake_library_set_cmake_options(zlib ${zlib_opts})
rcl_cmake_library_set_other_use_opt(zlib
"-DZLIB_ROOT=\"${ZLIB_ROOT}\""
"-DZLIB_LIBRARY=\"${ZLIB_LIBRARY}\""
"-DZLIB_INCLUDE_DIR=\"${ZLIB_ROOT}/include\""
)
rcl_cmake_library_set_init_script(zlib
"set(ZLIB_ROOT \"${ZLIB_ROOT}\")"
"set(ZLIB_INCLUDE_DIR \"${ZLIB_INCLUDE_DIR}\")"
"set(ZLIB_INCLUDE_DIRS \"${ZLIB_INCLUDE_DIR}\")"
"set(ZLIB_LIBRARY \"${ZLIB_LIBRARY}\")"
"set(ZLIB_LIBRARIES \"${ZLIB_LIBRARY}\")"
)
rcl_cmake_library_set_clear_script(zlib
"unset(ZLIB_ROOT)"
"unset(ZLIB_INCLUDE_DIR)"
"unset(ZLIB_INCLUDE_DIRS)"
"unset(ZLIB_LIBRARY)"
"unset(ZLIB_LIBRARIES)"
)
# =========================
# libpng
# =========================
set(LIBPNG_VERSION v1.6.58)
set(PNG_ROOT "${EXTERNAL_INSTALL_DIR}/PNG_${LIBPNG_VERSION}")
set(PNG_PNG_INCLUDE_DIR "${PNG_ROOT}/include")
if (WIN32)
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
set(PNG_LIBRARY "${PNG_ROOT}/lib/libpng16_staticd.lib")
else ()
set(PNG_LIBRARY "${PNG_ROOT}/lib/libpng16_static.lib")
endif ()
else ()
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
set(PNG_LIBRARY "${PNG_ROOT}/lib/libpng16d.a")
else ()
set(PNG_LIBRARY "${PNG_ROOT}/lib/libpng16.a")
endif ()
endif ()
set(libpng_opts)
list(APPEND libpng_opts "-DPNG_SHARED=OFF")
list(APPEND libpng_opts "-DPNG_STATIC=ON")
list(APPEND libpng_opts "-DPNG_TESTS=OFF")
list(APPEND libpng_opts "-DPNG_TOOLS=OFF")
list(APPEND libpng_opts "-DPNG_EXECUTABLES=OFF")
list(APPEND libpng_opts "-DZLIB_ROOT=\"${ZLIB_ROOT}\"")
list(APPEND libpng_opts "-DZLIB_LIBRARY=\"${ZLIB_LIBRARY}\"")
list(APPEND libpng_opts "-DZLIB_INCLUDE_DIR=\"${ZLIB_INCLUDE_DIR}\"")
_register_git_cmake_library(
libpng
libpng
https://github.com/glennrp/libpng.git
v1.6.58
)
rcl_cmake_library_set_cmake_options(libpng ${libpng_opts})
rcl_cmake_library_set_other_use_opt(libpng
"-DPNG_LIBRARY=\"${PNG_LIBRARY}\""
"-DPNG_PNG_INCLUDE_DIR=\"${PNG_PNG_INCLUDE_DIR}\""
)
set(GTest_opts)
list(APPEND GTest_opts "-Dgtest_force_shared_crt=ON")
_register_git_cmake_library(
googletest
GTest
https://github.com/google/googletest.git
v1.17.0
)
rcl_cmake_library_set_cmake_options(googletest ${GTest_opts})
set(GTest_DIR ${EXTERNAL_INSTALL_DIR}/googletest/lib/cmake)
#_register_git_cmake_library(
# libarchive
# libarchive
# "https://github.com/libarchive/libarchive.git"
# "v3.8.7"
# libarchive_opts
# ""
# ""
#)
set(libzip_opts)
list(APPEND libzip_opts "-DBUILD_EXAMPLES=OFF")
list(APPEND libzip_opts "-DBUILD_DOC=OFF")
list(APPEND libzip_opts "-DBUILD_REGRESS=OFF")
list(APPEND libzip_opts "-DBUILD_TOOLS=OFF")
list(APPEND libzip_opts "-DBUILD_SHARED_LIBS=OFF")
_register_git_cmake_library(
libzip
libzip
"https://github.com/nih-at/libzip"
"v1.11.4"
)
rcl_cmake_library_set_cmake_options(libzip ${libzip_opts})
rcl_cmake_library_set_deps(libzip zlib)
#set(ucoro_opts)
#_register_git_cmake_library_opt(
# "ucoro"
# "https://github.com/avplayer/ucoro.git"
# "v1.0"
# ucoro_opts
#)
#
set(spdlog_opts)
list(APPEND spdlog_opts
"-DSPDLOG_BUILD_EXAMPLE=OFF"
"-DSPDLOG_BUILD_TESTS=OFF"
"-DSPLOG_BUILD_BENCH=OFF"
"-DSPDLOG_INSTALL=ON"
"-DSPDLOG_FMT_EXTERNAL=OFF"
)
_register_git_cmake_library(
spdlog
spdlog
"https://github.com/gabime/spdlog.git"
"v1.17.0"
)
rcl_cmake_library_set_cmake_options(spdlog ${spdlog_opts})
_register_git_cmake_library(
pfr
pfr
"https://github.com/boostorg/pfr.git"
"2.2.0"
)
_register_git_cmake_library(
llvm
llvm
"https://github.com/llvm/llvm-project.git"
"llvmorg-22.1.8"
)
rcl_cmake_library_set_cmake_source_relative_dir(llvm "llvm")
message("base.cmake load complete!")