Browse Source
Introduces cura_build_optimized.jinja to handle mixed C++ standard requirements across components, platform-specific options, and build optimizations. Includes settings for compiler standards, shared library configurations, plugin disabling, and parallelization for improved build performance.pull/27/head
1 changed files with 101 additions and 0 deletions
@ -0,0 +1,101 @@
|
||||
include(default) |
||||
|
||||
# Optimized Cura Build Profile |
||||
# Generated based on C++ compatibility analysis |
||||
# Handles mixed C++ standard requirements across components |
||||
|
||||
[replace_requires] |
||||
{% if platform.system() == 'Linux' %} |
||||
# FIXME: once gRPC is updated to 1.67.0 or higher |
||||
# Using 255.10 or higher https://github.com/conan-io/conan-center-index/issues/24889 |
||||
# https://github.com/conan-io/conan-center-index/blob/879e140d9438ab491aceea766d0cf0ae3595dae8/recipes/grpc/all/conanfile.py#L122 |
||||
libsystemd/*: libsystemd/[>=255.10] |
||||
{% endif %} |
||||
|
||||
[settings] |
||||
# Default C++ standard for components that support it (libSavitar, libnest2d) |
||||
compiler.cppstd=17 |
||||
|
||||
# C++20 overrides for components that require it |
||||
curaengine*:compiler.cppstd=20 |
||||
curaengine_plugin_infill_generate*:compiler.cppstd=20 |
||||
curaengine_plugin_gradual_flow*:compiler.cppstd=20 |
||||
curaengine_grpc_definitions*:compiler.cppstd=20 |
||||
scripta*:compiler.cppstd=20 |
||||
umspatial*:compiler.cppstd=20 |
||||
dulcificum*:compiler.cppstd=20 |
||||
uvula*:compiler.cppstd=20 |
||||
curator/*:compiler.cppstd=20 |
||||
arcus*:compiler.cppstd=20 |
||||
pyarcus*:compiler.cppstd=20 |
||||
|
||||
# Optimize build type for release builds |
||||
build_type=Release |
||||
|
||||
[options] |
||||
# gRPC optimizations - disable unused plugins |
||||
asio-grpc/*:local_allocator=recycling_allocator |
||||
grpc/*:csharp_plugin=False |
||||
grpc/*:node_plugin=False |
||||
grpc/*:objective_c_plugin=False |
||||
grpc/*:php_plugin=False |
||||
grpc/*:ruby_plugin=False |
||||
grpc/*:python_plugin=False |
||||
|
||||
# Boost header-only for better compatibility |
||||
boost/*:header_only=True |
||||
|
||||
# Platform-specific optimizations |
||||
{% if platform.system() == 'Linux' %} |
||||
openssl/*:shared=True |
||||
{% endif %} |
||||
|
||||
# Python bindings - shared libraries for proper module loading |
||||
pyarcus/*:shared=True |
||||
pysavitar/*:shared=True |
||||
pynest2d/*:shared=True |
||||
cpython/*:shared=True |
||||
cpython/*:with_tkinter=False |
||||
cpython/*:with_curses=False |
||||
|
||||
# Python dependencies - required for ARM64 builds |
||||
mpdecimal/*:shared=True |
||||
|
||||
# Dulcificum library configuration |
||||
{% if platform.system() == 'Windows' %} |
||||
dulcificum/*:shared=False |
||||
{% else %} |
||||
dulcificum/*:shared=True |
||||
{% endif %} |
||||
|
||||
# Core library configurations |
||||
clipper/*:shared=True |
||||
arcus/*:shared=True |
||||
|
||||
# OneTBB configuration - disable tbbproxy for ARM64 compatibility |
||||
onetbb/*:tbbproxy=False |
||||
|
||||
# Optimization flags |
||||
{% if platform.system() == 'Windows' %} |
||||
curaengine/*:enable_more_compiler_optimization_flags=True |
||||
{% endif %} |
||||
|
||||
# Disable testing for faster builds |
||||
curaengine/*:enable_benchmarks=False |
||||
curaengine/*:enable_extensive_warnings=False |
||||
|
||||
[conf] |
||||
# Skip tests to speed up builds |
||||
tools.build:skip_test=True |
||||
|
||||
# Compiler-specific optimizations |
||||
{% if platform.system() == 'Windows' %} |
||||
tools.cmake.cmaketoolchain:generator=Ninja |
||||
{% endif %} |
||||
|
||||
# Memory optimization for large builds |
||||
tools.system.package_manager:mode=install |
||||
tools.system.package_manager:sudo=True |
||||
|
||||
# Build parallelization |
||||
tools.build:jobs={{ os.cpu_count() }} |
||||
Loading…
Reference in new issue