Improve cmake template

This commit is contained in:
Jeremy Soller 2025-05-10 12:58:22 -06:00
parent db2e282828
commit 8f2bffb63b
No known key found for this signature in database
GPG Key ID: 670FDFB5428E05CA

View File

@ -797,26 +797,31 @@ function cookbook_configure {
COOKBOOK_CMAKE="cmake"
COOKBOOK_NINJA="ninja"
function cookbook_cmake {
cat > CMakeToolchain-x86_64.cmake <<EOF
set(CMAKE_SYSTEM_NAME UnixPaths)
set(CMAKE_FIND_ROOT_PATH ${COOKBOOK_SYSROOT})
set(CMAKE_C_COMPILER ${TARGET}-gcc)
set(CMAKE_CXX_COMPILER ${TARGET}-g++)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
set(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1)
cat > cross_file.cmake <<EOF
set(CMAKE_AR ${TARGET}-ar)
set(CMAKE_CXX_COMPILER ${TARGET}-g++)
set(CMAKE_C_COMPILER ${TARGET}-gcc)
set(CMAKE_FIND_ROOT_PATH ${COOKBOOK_SYSROOT})
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_INSTALL_INCLUDEDIR include)
set(CMAKE_INSTALL_LIBDIR lib)
set(CMAKE_INSTALL_OLDINCLUDEDIR /include)
set(CMAKE_INSTALL_PREFIX /usr)
set(CMAKE_INSTALL_SBINDIR bin)
set(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1)
set(CMAKE_PREFIX_PATH, ${COOKBOOK_SYSROOT})
set(CMAKE_RANLIB ${TARGET}-ranlib)
set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
set(CMAKE_SYSTEM_NAME UnixPaths)
set(CMAKE_SYSTEM_PROCESSOR $(echo "${TARGET}" | cut -d - -f1))
EOF
"${COOKBOOK_CMAKE}" "${COOKBOOK_SOURCE}" \
-DCMAKE_TOOLCHAIN_FILE=./CMakeToolchain-x86_64.cmake
-DCMAKE_INSTALL_PREFIX="." \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_SBINDIR=bin \
-DCMAKE_INSTALL_INCLUDEDIR="include" \
-DCMAKE_INSTALL_OLDINCLUDEDIR="/include" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CROSSCOMPILING=True \
-DCMAKE_TOOLCHAIN_FILE=cross_file.cmake \
-DBUILD_SHARED_LIBS=True \
-DENABLE_STATIC=False \
-GNinja \