Make it easier to compile cmake software dynamically

This commit is contained in:
Jeremy Soller 2025-09-07 19:01:27 -06:00
parent 5064d0e02e
commit 8e48e73584
No known key found for this signature in database
GPG Key ID: 670FDFB5428E05CA
10 changed files with 34 additions and 27 deletions

View File

@ -24,7 +24,7 @@ DYNAMIC_INIT
export LDFLAGS="-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib $LDFLAGS"
COOKBOOK_CMAKE_FLAGS=(
COOKBOOK_CMAKE_FLAGS+=(
-DBUILD_TESTING=Off
-DCMAKE_USE_SYSTEM_BZIP2=On
-DCMAKE_USE_SYSTEM_CURL=On

View File

@ -31,7 +31,7 @@ case "${TARGET}" in
;;
esac
COOKBOOK_CMAKE_FLAGS=(
COOKBOOK_CMAKE_FLAGS+=(
-DCMAKE_CXX_FLAGS="--std=gnu++11"
-DBUILD_SHARED_LIBS=False
-DLLVM_LINK_LLVM_DYLIB=On

View File

@ -23,7 +23,7 @@ export CFLAGS="-I${COOKBOOK_SYSROOT}/include -I${COOKBOOK_SYSROOT}/include/SDL"
export SDLCONFIG="${COOKBOOK_SYSROOT}/bin/sdl-config --prefix=${COOKBOOK_SYSROOT}"
export LDFLAGS="-L${COOKBOOK_SYSROOT}/lib"
if [[ -n "${COOKBOOK_PREFER_STATIC}" ]]; then
if [ "${COOKBOOK_DYNAMIC}" != "1" ]; then
LDFLAGS+=" -static"
fi

View File

@ -38,7 +38,7 @@ export bindir="${prefix}/games"
export icondir="/ui/icons/apps"
export gamesdir="${prefix}/share/games"
if ! [[ -n "${COOKBOOK_PREFER_STATIC}" ]]; then
if [ "${COOKBOOK_DYNAMIC}" == "1" ]; then
LDFLAGS+=" -lstdc++"
fi

View File

@ -39,7 +39,7 @@ export USE_SDL2=1
export USE_CODEC_MP3=0
export DO_USERDIRS=1
if ! [[ -n "${COOKBOOK_PREFER_STATIC}" ]]; then
if [ "${COOKBOOK_DYNAMIC}" == "1" ]; then
LDFLAGS+=" -lstdc++"
fi

View File

@ -6,6 +6,6 @@ blake3 = "3efc14da55c56fc0a6a50f109d9e1ee8a91f5ae7dd17a21d3aebe04a65f3ee96"
[build]
template = "custom"
script = """
DYNAMIC_INIT
DYNAMIC_STATIC_INIT
cookbook_cmake
"""

View File

@ -8,7 +8,7 @@ template = "custom"
script = """
DYNAMIC_INIT
COOKBOOK_CMAKE_FLAGS=(
COOKBOOK_CMAKE_FLAGS+=(
-DBUILD_TESTING=Off
)
cookbook_cmake

View File

@ -17,27 +17,19 @@ export CFLAGS+=" -DHAVE_PTHREAD=1"
export CPPFLAGS+=" -DHAVE_PTHREAD=1"
export LLVM_CONFIG="${TARGET}-llvm-config"
if [[ -n "${COOKBOOK_PREFER_STATIC}" ]]; then
export LDFLAGS+=" --static"
export DEFAULTLIB="static"
export LLVMSHARED="disabled"
if [ "${COOKBOOK_DYNAMIC}" == "1" ]; then
COOKBOOK_MESON_FLAGS+=(-Dshared-llvm=enabled)
else
export DEFAULTLIB="shared"
export LLVMSHARED="enabled"
COOKBOOK_MESON_FLAGS+=(-Dshared-llvm=disabled)
fi
COOKBOOK_MESON_FLAGS=(
-Ddefault_library="${DEFAULTLIB}"
-Dglx=disabled
-Dllvm=enabled
-Dosmesa=true
-Dplatforms=
-Dshader-cache=disabled
-Dshared-llvm="${LLVMSHARED}"
cookbook_meson \
-Dglx=disabled \
-Dllvm=enabled \
-Dosmesa=true \
-Dplatforms= \
-Dshader-cache=disabled \
-Dshared-glapi=disabled
)
cookbook_meson
# Hack to add LLVM libs
#TODO: only add necessary LLVM libs, not all of them

View File

@ -13,7 +13,7 @@ dependencies = [
]
script = """
DYNAMIC_INIT
COOKBOOK_CMAKE_FLAGS=(
COOKBOOK_CMAKE_FLAGS+=(
-Dprotobuf_BUILD_TESTS=OFF
)
cookbook_cmake

View File

@ -228,6 +228,12 @@ function DYNAMIC_INIT {
--disable-static
)
COOKBOOK_CMAKE_FLAGS=(
-DBUILD_SHARED_LIBS=True
-DENABLE_SHARED=True
-DENABLE_STATIC=False
)
COOKBOOK_MESON_FLAGS=(
--buildtype release
--wrap-mode nofallback
@ -255,6 +261,12 @@ function DYNAMIC_STATIC_INIT {
--enable-static
)
COOKBOOK_CMAKE_FLAGS=(
-DBUILD_SHARED_LIBS=True
-DENABLE_SHARED=True
-DENABLE_STATIC=True
)
COOKBOOK_MESON_FLAGS=(
--buildtype release
--wrap-mode nofallback
@ -927,6 +939,11 @@ function cookbook_configure {
COOKBOOK_CMAKE="cmake"
COOKBOOK_NINJA="ninja"
COOKBOOK_CMAKE_FLAGS=(
-DBUILD_SHARED_LIBS=False
-DENABLE_SHARED=False
-DENABLE_STATIC=True
)
function cookbook_cmake {
cat > cross_file.cmake <<EOF
set(CMAKE_AR ${TARGET}-ar)
@ -959,8 +976,6 @@ EOF
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_SBINDIR=bin \
-DCMAKE_TOOLCHAIN_FILE=cross_file.cmake \
-DBUILD_SHARED_LIBS=True \
-DENABLE_STATIC=False \
-GNinja \
-Wno-dev \
"${COOKBOOK_CMAKE_FLAGS[@]}" \