Files
build_infra/0_cmake_library/register/base.cmake
T
2026-08-13 17:54:05 +08:00

171 lines
6.0 KiB
CMake

include_guard(GLOBAL)
block()
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(global::zlib
https://github.com/madler/zlib.git
v1.3.1
)
rcl_get_effective_install_dir(global::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(global::zlib ${zlib_opts})
rcl_cmake_library_set_other_use_opt(global::zlib
"-DZLIB_ROOT=\"${ZLIB_ROOT}\""
"-DZLIB_LIBRARY=\"${ZLIB_LIBRARY}\""
"-DZLIB_INCLUDE_DIR=\"${ZLIB_ROOT}/include\""
)
rcl_cmake_library_set_init_script(global::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(global::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(libpng_opts)
_register_git_cmake_library(global::libpng
https://github.com/glennrp/libpng.git
${LIBPNG_VERSION}
)
rcl_get_effective_install_dir(global::libpng PNG_ROOT)
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 ()
list(APPEND libpng_opts
-DPNG_SHARED=OFF
-DPNG_STATIC=ON
-DPNG_TESTS=OFF
-DPNG_TOOLS=OFF
-DPNG_EXECUTABLES=OFF
"-DZLIB_ROOT=${ZLIB_ROOT}"
"-DZLIB_LIBRARY=${ZLIB_LIBRARY}"
"-DZLIB_INCLUDE_DIR=${ZLIB_INCLUDE_DIR}"
)
rcl_cmake_library_set_cmake_options(global::libpng ${libpng_opts})
rcl_cmake_library_set_other_use_opt(global::libpng
"-DPNG_LIBRARY=\"${PNG_LIBRARY}\""
"-DPNG_PNG_INCLUDE_DIR=\"${PNG_PNG_INCLUDE_DIR}\""
)
rcl_cmake_library_set_init_script(global::libpng
"set(PNG_LIBRARY \"${PNG_LIBRARY}\")"
"set(PNG_PNG_INCLUDE_DIR \"${PNG_PNG_INCLUDE_DIR}\")"
)
rcl_cmake_library_set_clear_script(global::libpng
"unset(PNG_LIBRARY)"
"unset(PNG_PNG_INCLUDE_DIR)"
)
set(GTest_opts)
list(APPEND GTest_opts "-Dgtest_force_shared_crt=ON")
_register_git_cmake_library(global::GTest
https://github.com/google/googletest.git
v1.17.0
)
rcl_cmake_library_set_cmake_options(global::GTest ${GTest_opts})
set(GTest_DIR ${EXTERNAL_INSTALL_DIR}/GTest/lib/cmake)
#_register_git_cmake_library(global::# 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(global::libzip
"https://github.com/nih-at/libzip"
"v1.11.4"
)
rcl_cmake_library_set_cmake_options(global::libzip ${libzip_opts})
rcl_cmake_library_set_deps(global::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(global::spdlog
"https://github.com/gabime/spdlog.git"
"v1.17.0"
)
rcl_cmake_library_set_cmake_options(global::spdlog ${spdlog_opts})
_register_git_cmake_library(global::llvm
"https://github.com/llvm/llvm-project.git"
"llvmorg-22.1.8"
)
rcl_cmake_library_set_cmake_source_relative_dir(global::llvm "llvm")
set(magic_enum_opts)
list(APPEND magic_enum_opts
"-DMAGIC_ENUM_OPT_BUILD_EXAMPLES=OFF"
"-DMAGIC_ENUM_OPT_BUILD_TESTS=OFF"
"-DMAGIC_ENUM_OPT_INSTALL=ON"
"-DMAGIC_ENUM_OPT_INSTALL_PACKAGE_XML=OFF"
)
_register_git_cmake_library(global::magic_enum
"https://github.com/Neargye/magic_enum.git"
"v0.9.8"
)
rcl_cmake_library_set_cmake_options(global::magic_enum ${magic_enum_opts})
set(pfr_opts
"-DBUILD_TESTING=OFF"
"-DBOOST_USE_MODULES=OFF"
)
_register_git_cmake_library(global::pfr
"https://github.com/boostorg/pfr.git"
"2.2.0"
)
rcl_cmake_library_set_cmake_options(global::pfr ${pfr_opts})
message("base.cmake load complete!")
endblock()