From e4150dd73aca09c6af37a21cabaaafab58bf8015 Mon Sep 17 00:00:00 2001 From: xengineering Date: Fri, 27 Dec 2024 13:38:16 +0100 Subject: WIP: mech: Add CMake-based build system --- CMakeLists.txt | 2 ++ mech/CMakeLists.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 mech/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b266d6..83a9038 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,5 @@ cmake_minimum_required(VERSION 3.10) project(soundbox LANGUAGES NONE) + +add_subdirectory(mech) diff --git a/mech/CMakeLists.txt b/mech/CMakeLists.txt new file mode 100644 index 0000000..de24ff2 --- /dev/null +++ b/mech/CMakeLists.txt @@ -0,0 +1,50 @@ +set(parts + assembly + production + #pcb_case/tolerance_tests +) + +foreach(part ${parts}) + set(source "${CMAKE_CURRENT_SOURCE_DIR}/${part}.scad") + set(intermediate "${CMAKE_CURRENT_BINARY_DIR}/${part}.stl") + set(sink "${CMAKE_CURRENT_BINARY_DIR}/${part}.gcode") + + add_custom_command( + OUTPUT + ${intermediate} + COMMAND + openscad + --hardwarnings + --export-format binstl + -o ${intermediate} + ${source} + DEPENDS + ${source} + ) + + set(printer_config "${CMAKE_CURRENT_SOURCE_DIR}/prusa-slicer/anycubic_i3_mega_s.ini") + add_custom_target( + "mech-stl-${part}" + ALL + DEPENDS + ${intermediate} + ) + + add_custom_command( + OUTPUT + ${sink} + COMMAND + prusa-slicer + --load ${printer_config} + --output ${sink} + --export-gcode ${intermediate} + DEPENDS + ${intermediate} + ) + add_custom_target( + "mech-gcode-${part}" + ALL + DEPENDS + ${sink} + ) +endforeach() -- cgit v1.2.3-70-g09d2