mirror of
https://git.mirrors.martin98.com/https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-04 14:15:18 +08:00
Build script improvements. (#7914)
* Build script improvements. Add NDEBUG for non-debug MacOS builds. I don't understand why, but on my system Release and RelWithDebugInfo builds were not defining NDEBUG, resulting in failing asserts and other sanity checks. Add -jN flag to BuildLinux.sh. On my 4-core 8GB RAM system, passing -j4 allows building without a swap storm. Improve README.md description of building on macOS. * Merge branch 'main' into bug/macos-ndebug * Merge branch 'main' into bug/macos-ndebug * Merge branch 'SoftFever:main' into bug/macos-ndebug * Improve CMake syntax. Mention Mac path to app. * Merge branch 'main' into bug/macos-ndebug
This commit is contained in:
parent
ed45bf425e
commit
782adafc39
@ -12,21 +12,24 @@ function check_available_memory_and_disk() {
|
|||||||
MIN_DISK_KB=$((10 * 1024 * 1024))
|
MIN_DISK_KB=$((10 * 1024 * 1024))
|
||||||
|
|
||||||
if [ ${FREE_MEM_GB} -le ${MIN_MEM_GB} ]; then
|
if [ ${FREE_MEM_GB} -le ${MIN_MEM_GB} ]; then
|
||||||
echo -e "\nERROR: Orca Slicer Builder requires at least ${MIN_MEM_GB}G of 'available' mem (systen has only ${FREE_MEM_GB}G available)"
|
echo -e "\nERROR: Orca Slicer Builder requires at least ${MIN_MEM_GB}G of 'available' mem (system has only ${FREE_MEM_GB}G available)"
|
||||||
echo && free -h && echo
|
echo && free -h && echo
|
||||||
|
echo "Invoke with -r to skip ram and disk checks."
|
||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ${FREE_DISK_KB} -le ${MIN_DISK_KB} ]]; then
|
if [[ ${FREE_DISK_KB} -le ${MIN_DISK_KB} ]]; then
|
||||||
echo -e "\nERROR: Orca Slicer Builder requires at least $(echo ${MIN_DISK_KB} |awk '{ printf "%.1fG\n", $1/1024/1024; }') (systen has only $(echo ${FREE_DISK_KB} | awk '{ printf "%.1fG\n", $1/1024/1024; }') disk free)"
|
echo -e "\nERROR: Orca Slicer Builder requires at least $(echo ${MIN_DISK_KB} |awk '{ printf "%.1fG\n", $1/1024/1024; }') (system has only $(echo ${FREE_DISK_KB} | awk '{ printf "%.1fG\n", $1/1024/1024; }') disk free)"
|
||||||
echo && df -h . && echo
|
echo && df -h . && echo
|
||||||
|
echo "Invoke with -r to skip ram and disk checks."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function usage() {
|
function usage() {
|
||||||
echo "Usage: ./BuildLinux.sh [-1][-b][-c][-d][-i][-r][-s][-u]"
|
echo "Usage: ./BuildLinux.sh [-1][-b][-c][-d][-i][-r][-s][-u] [-j N]"
|
||||||
echo " -1: limit builds to 1 core (where possible)"
|
echo " -1: limit builds to 1 core (where possible)"
|
||||||
|
echo " -j N: limit builds to N cores (where possible)"
|
||||||
echo " -b: build in debug mode"
|
echo " -b: build in debug mode"
|
||||||
echo " -c: force a clean build"
|
echo " -c: force a clean build"
|
||||||
echo " -d: build deps (optional)"
|
echo " -d: build deps (optional)"
|
||||||
@ -40,11 +43,14 @@ function usage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
unset name
|
unset name
|
||||||
while getopts ":1bcdghirsu" opt; do
|
while getopts ":1j:bcdghirsu" opt; do
|
||||||
case ${opt} in
|
case ${opt} in
|
||||||
1 )
|
1 )
|
||||||
export CMAKE_BUILD_PARALLEL_LEVEL=1
|
export CMAKE_BUILD_PARALLEL_LEVEL=1
|
||||||
;;
|
;;
|
||||||
|
j )
|
||||||
|
CMAKE_BUILD_PARALLEL_LEVEL=$OPTARG
|
||||||
|
;;
|
||||||
b )
|
b )
|
||||||
BUILD_DEBUG="1"
|
BUILD_DEBUG="1"
|
||||||
;;
|
;;
|
||||||
@ -163,7 +169,7 @@ then
|
|||||||
else
|
else
|
||||||
BUILD_ARGS="${BUILD_ARGS} -DBBL_RELEASE_TO_PUBLIC=1 -DBBL_INTERNAL_TESTING=0"
|
BUILD_ARGS="${BUILD_ARGS} -DBBL_RELEASE_TO_PUBLIC=1 -DBBL_INTERNAL_TESTING=0"
|
||||||
fi
|
fi
|
||||||
echo -e "cmake -S . -B build -G Ninja -DCMAKE_PREFIX_PATH="${PWD}/deps/build/destdir/usr/local" -DSLIC3R_STATIC=1 ${BUILD_ARGS}"
|
echo -e "cmake -S . -B build -G Ninja -DCMAKE_PREFIX_PATH="${PWD}/deps/build/destdir/usr/local" -DSLIC3R_STATIC=1 -DORCA_TOOLS=ON ${BUILD_ARGS}"
|
||||||
cmake -S . -B build -G Ninja \
|
cmake -S . -B build -G Ninja \
|
||||||
-DCMAKE_PREFIX_PATH="${PWD}/deps/build/destdir/usr/local" \
|
-DCMAKE_PREFIX_PATH="${PWD}/deps/build/destdir/usr/local" \
|
||||||
-DSLIC3R_STATIC=1 \
|
-DSLIC3R_STATIC=1 \
|
||||||
|
@ -182,7 +182,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|||||||
|
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
# Add DEBUG flags to debug builds.
|
# Add DEBUG flags to debug builds.
|
||||||
add_compile_options("$<$<CONFIG:DEBUG>:-DDEBUG>")
|
add_compile_definitions("$<IF:$<CONFIG:Debug>,DEBUG,NDEBUG>")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# To be able to link libslic3r with the Perl XS module.
|
# To be able to link libslic3r with the Perl XS module.
|
||||||
|
@ -97,7 +97,9 @@ Explore the latest developments in Orca Slicer with our nightly builds. Feedback
|
|||||||
- Mac 64-bit
|
- Mac 64-bit
|
||||||
- Tools needed: Xcode, Cmake, git, gettext, libtool, automake, autoconf, texinfo
|
- Tools needed: Xcode, Cmake, git, gettext, libtool, automake, autoconf, texinfo
|
||||||
- You can install most of them by running `brew install cmake gettext libtool automake autoconf texinfo`
|
- You can install most of them by running `brew install cmake gettext libtool automake autoconf texinfo`
|
||||||
|
- If you haven't since upgrading Xcode, start Xcode and install macOS build support.
|
||||||
- run `build_release_macos.sh`
|
- run `build_release_macos.sh`
|
||||||
|
- open `build_arm64/OrcaSlicer/OrcaSlicer.app`
|
||||||
- To build and debug in Xcode:
|
- To build and debug in Xcode:
|
||||||
- run `Xcode.app`
|
- run `Xcode.app`
|
||||||
- open ``build_`arch`/OrcaSlicer.Xcodeproj``
|
- open ``build_`arch`/OrcaSlicer.Xcodeproj``
|
||||||
@ -119,7 +121,7 @@ Explore the latest developments in Orca Slicer with our nightly builds. Feedback
|
|||||||
- Ubuntu
|
- Ubuntu
|
||||||
- Dependencies **Will be auto installed with the shell script**: `libmspack-dev libgstreamerd-3-dev libsecret-1-dev libwebkit2gtk-4.0-dev libosmesa6-dev libssl-dev libcurl4-openssl-dev eglexternalplatform-dev libudev-dev libdbus-1-dev extra-cmake-modules libgtk2.0-dev libglew-dev libudev-dev libdbus-1-dev cmake git texinfo`
|
- Dependencies **Will be auto installed with the shell script**: `libmspack-dev libgstreamerd-3-dev libsecret-1-dev libwebkit2gtk-4.0-dev libosmesa6-dev libssl-dev libcurl4-openssl-dev eglexternalplatform-dev libudev-dev libdbus-1-dev extra-cmake-modules libgtk2.0-dev libglew-dev libudev-dev libdbus-1-dev cmake git texinfo`
|
||||||
- run 'sudo ./BuildLinux.sh -u'
|
- run 'sudo ./BuildLinux.sh -u'
|
||||||
- run './BuildLinux.sh -dsir'
|
- run './BuildLinux.sh -dsi'
|
||||||
|
|
||||||
# Note:
|
# Note:
|
||||||
If you're running Klipper, it's recommended to add the following configuration to your `printer.cfg` file.
|
If you're running Klipper, it's recommended to add the following configuration to your `printer.cfg` file.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user