Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
build/
cmake-build-*/
out/
gen_cpp_units/target/

# IDE files
.vscode/
Expand Down
20 changes: 11 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ else()
set(QTTY_LIBRARY_PATH ${QTTY_ARTIFACT_DIR}/libqtty_ffi.so)
endif()

# Generate C++ unit wrappers from qtty_ffi.h
find_package(Python3 COMPONENTS Interpreter REQUIRED)
set(QTTY_FFI_HEADER ${QTTY_FFI_INCLUDE_DIR}/qtty_ffi.h)
# Generate C++ unit wrappers from units.csv via the Rust gen_cpp_units binary.
# Running `cargo run` builds the binary (and the qtty-ffi library) if needed.
set(QTTY_UNITS_CSV ${QTTY_SUBMODULE_DIR}/qtty-ffi/units.csv)
set(GENERATED_HEADERS
${CMAKE_CURRENT_SOURCE_DIR}/include/qtty/units/length.hpp
${CMAKE_CURRENT_SOURCE_DIR}/include/qtty/units/time.hpp
Expand All @@ -53,10 +53,11 @@ set(GENERATED_HEADERS

add_custom_command(
OUTPUT ${GENERATED_HEADERS}
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/gen_cpp_units.py
DEPENDS ${QTTY_FFI_HEADER} ${CMAKE_CURRENT_SOURCE_DIR}/gen_cpp_units.py
COMMAND ${CARGO_BIN} run --manifest-path ${CMAKE_CURRENT_SOURCE_DIR}/gen_cpp_units/Cargo.toml --release
-- ${QTTY_UNITS_CSV} ${CMAKE_CURRENT_SOURCE_DIR}/include/qtty
DEPENDS ${QTTY_UNITS_CSV}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Generating C++ unit wrappers from qtty_ffi.h"
COMMENT "Generating C++ unit wrappers from units.csv (Rust)"
VERBATIM
)

Expand Down Expand Up @@ -231,8 +232,9 @@ install(EXPORT qtty_cppTargets
# Generate unit files (if needed)
add_custom_target(
gen_units
COMMAND ${CARGO_BIN} run -p qtty-ffi --bin gen_units
WORKING_DIRECTORY ${QTTY_SUBMODULE_DIR}
COMMENT "Generating unit files"
COMMAND ${CARGO_BIN} run --manifest-path ${CMAKE_CURRENT_SOURCE_DIR}/gen_cpp_units/Cargo.toml --release
-- ${QTTY_UNITS_CSV} ${CMAKE_CURRENT_SOURCE_DIR}/include/qtty
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Generating C++ unit wrappers from units.csv (Rust)"
VERBATIM
)
303 changes: 0 additions & 303 deletions gen_cpp_units.py

This file was deleted.

7 changes: 7 additions & 0 deletions gen_cpp_units/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions gen_cpp_units/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[package]
name = "gen_cpp_units"
version = "0.1.0"
edition = "2021"
authors = ["Vallés Puig, Ramon <>"]
description = "Generator for C++ unit-wrapper headers from units.csv"

[dependencies]
Loading