From 53ee7b2b648d9377f7dbf77e0ca8d4322b560389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Fi=C5=A1er?= Date: Wed, 1 Dec 2021 01:11:37 +0100 Subject: [PATCH] MAINTENANCE: Massage packaging for Debian systems Add packaging dependencies for successful run of 'mk-build-deps', 'dkpg-buildpackage' on Debian based systems (Debian Buster, Debian Bullseye, Ubuntu Bionic, Ubuntu Focal, Ubuntu Hirsute). Modify the tests - both 'runtests' and 'pytests' - to run to completion during CI testing on Debian based systems. --- CMakeLists.txt | 35 ++- debian/bootstrap | 23 ++ debian/buildsystem/Dockerfile | 4 +- debian/control.in | 2 + debian/debianMultiarchToolchain.cmake | 7 + debian/rules | 26 +- debian/runtests.py | 75 +++-- src/CMakeLists.txt | 23 +- src/executables/CMakeLists.txt | 4 +- src/executables/bitfile/CMakeLists.txt | 50 +++- src/executables/comp/CMakeLists.txt | 87 +++++- .../comp/src/MachinekitHALCompFunction.cmake | 255 ++++++++++++++++ src/executables/comp/src/__init__.py | 2 +- src/executables/comp/src/comp.g | 279 +++++++++++++----- src/executables/instcomp/CMakeLists.txt | 93 ++++-- ...ke => MachinekitHALInstcompFunction.cmake} | 18 +- src/executables/instcomp/src/instcomp.g | 166 +++++++---- src/executables/mklauncher/CMakeLists.txt | 50 +++- src/executables/mkwrapper/CMakeLists.txt | 50 +++- src/libraries/CMakeLists.txt | 1 + src/libraries/ads7828/CMakeLists.txt | 50 +++- src/libraries/cycompat/CMakeLists.txt | 153 ++++++++++ src/libraries/cycompat/src/CMakeLists.txt.in | 73 +++++ src/libraries/cycompat/src/__init__.py | 1 + src/libraries/cycompat/src/build.py | 38 +++ src/libraries/cycompat/src/compat.pxd | 4 +- src/libraries/cycompat/src/compat.pyx | 2 +- src/libraries/cycompat/src/pyproject.toml.in | 57 ++++ src/libraries/cyhal/CMakeLists.txt | 187 ++++++++++++ .../cyhal/{README.from => README.asciidoc} | 0 .../examples/{README => README.asciidoc} | 0 src/libraries/cyhal/examples/component.py | 2 +- src/libraries/cyhal/examples/group.py | 2 +- src/libraries/cyhal/examples/heaptrace.py | 2 +- src/libraries/cyhal/examples/internal.py | 2 +- src/libraries/cyhal/examples/test_instance.py | 2 +- src/libraries/cyhal/src/CMakeLists.txt.in | 73 +++++ src/libraries/cyhal/src/__init__.py | 1 + src/libraries/cyhal/src/build.py | 38 +++ src/libraries/cyhal/src/hal.pxd | 2 +- src/libraries/cyhal/src/hal_const.pxd | 4 +- src/libraries/cyhal/src/hal_group.pxd | 2 +- src/libraries/cyhal/src/hal_iter.pxd | 2 +- src/libraries/cyhal/src/hal_objectops.pxd | 2 +- src/libraries/cyhal/src/hal_priv.pxd | 4 +- src/libraries/cyhal/src/hal_rcomp.pxd | 2 +- src/libraries/cyhal/src/hal_ring.pxd | 2 +- src/libraries/cyhal/src/pyproject.toml.in | 57 ++++ src/libraries/cyhal/src/ring.pxd | 4 +- src/libraries/cyhal/src/ring_const.pxd | 2 +- src/libraries/cyhal/{ => test}/test.py | 0 src/libraries/cyruntime/CMakeLists.txt | 163 ++++++++++ .../include/{ => cyruntime}/rtapi.pxd | 11 +- src/libraries/cyruntime/src/CMakeLists.txt.in | 74 +++++ src/libraries/cyruntime/src/__init__.py | 2 +- src/libraries/cyruntime/src/build.py | 38 +++ src/libraries/cyruntime/src/pyproject.toml.in | 57 ++++ src/libraries/cyruntime/src/rtapi.pyx | 16 +- src/libraries/cyruntime/src/rtapi_app.pxd | 2 +- src/libraries/cyshmcommon/CMakeLists.txt | 153 ++++++++++ .../cyshmcommon/src/CMakeLists.txt.in | 73 +++++ src/libraries/cyshmcommon/src/__init__.py | 1 + src/libraries/cyshmcommon/src/build.py | 38 +++ .../cyshmcommon/src/pyproject.toml.in | 57 ++++ src/libraries/cyshmcommon/src/shmcommon.pxd | 2 +- src/libraries/export_package/CMakeLists.txt | 47 +++ .../src/Machinekit-HALConfig.cmake.in | 105 +++++++ src/libraries/hal/CMakeLists.txt | 89 +++--- ...MachinekitHALManaged-HALComponent.cmake.in | 77 +++++ ...chinekitHALUnmanaged-HALComponent.cmake.in | 81 +++++ .../hal/test}/CMakeLists.txt | 0 src/libraries/hal_command/CMakeLists.txt | 21 +- ...MachinekitHALHAL-CommandComponent.cmake.in | 77 +++++ src/libraries/hal_glib/CMakeLists.txt | 50 +++- src/libraries/hal_parport/CMakeLists.txt | 14 +- src/libraries/halfile/CMakeLists.txt | 50 +++- src/libraries/halscope_memory/CMakeLists.txt | 13 +- src/libraries/hostmot2_bitfile/CMakeLists.txt | 11 +- src/libraries/launcher/CMakeLists.txt | 50 +++- src/libraries/linux_event/CMakeLists.txt | 50 +++- src/libraries/machinetalk/CMakeLists.txt | 36 ++- src/libraries/mcp23017/CMakeLists.txt | 50 +++- src/libraries/misc_gtk/CMakeLists.txt | 14 +- src/libraries/mkini/CMakeLists.txt | 16 +- src/libraries/nanopb/CMakeLists.txt | 6 +- src/libraries/pb2json/CMakeLists.txt | 50 +++- src/libraries/pca9685/CMakeLists.txt | 50 +++- src/libraries/pru_app_loader/CMakeLists.txt | 16 +- src/libraries/pru_defines/CMakeLists.txt | 16 +- src/libraries/pyhalmodule/CMakeLists.txt | 89 +++++- .../pyhalmodule/src/CMakeLists.txt.in | 31 +- .../pyhalmodule/src/{hal.py => __init__.py} | 7 +- src/libraries/pyhalmodule/src/build.py | 8 +- src/libraries/pyhalmodule/src/halmodule.cc | 4 +- .../pyhalmodule/src/pyproject.toml.in | 3 +- src/libraries/raspi_cpuinfo/CMakeLists.txt | 13 +- src/libraries/rtapi_compat/CMakeLists.txt | 19 +- src/libraries/rtapi_pci/CMakeLists.txt | 16 +- src/libraries/runtime/CMakeLists.txt | 75 ++--- ...inekitHALManaged-RuntimeComponent.cmake.in | 79 +++++ ...ekitHALUnmanaged-RuntimeComponent.cmake.in | 82 +++++ .../runtime_bootstrap/CMakeLists.txt | 36 +-- .../runtime_bootstrap/src/dot_envrc.in | 17 ++ src/libraries/runtime_math/CMakeLists.txt | 16 +- src/libraries/runtime_memory/CMakeLists.txt | 10 +- src/libraries/samstr_memdefs/CMakeLists.txt | 15 +- src/libraries/service/CMakeLists.txt | 50 +++- .../service_discovery/CMakeLists.txt | 50 +++- .../symbol_visibility/CMakeLists.txt | 14 +- .../symbol_visibility/README.asciidoc | 2 +- ...chinekitHALSymbolVisibilityFunction.cmake} | 4 +- src/libraries/syslog_async/CMakeLists.txt | 13 +- src/libraries/upci/CMakeLists.txt | 15 +- src/libraries/user_pci/CMakeLists.txt | 26 +- src/modules/CMakeLists.txt | 4 - src/modules/managed/components/CMakeLists.txt | 6 + .../managed/components/abs/CMakeLists.txt | 2 +- .../managed/components/abs_s32/CMakeLists.txt | 2 +- .../components/abs_s32v2/CMakeLists.txt | 2 +- .../managed/components/abs_s64/CMakeLists.txt | 2 +- .../managed/components/absv2/CMakeLists.txt | 2 +- .../managed/components/and2/CMakeLists.txt | 2 +- .../managed/components/and2v2/CMakeLists.txt | 2 +- .../managed/components/andn/CMakeLists.txt | 2 +- .../managed/components/andnv2/CMakeLists.txt | 2 +- .../managed/components/at_pid/CMakeLists.txt | 2 +- .../components/at_pidv2/CMakeLists.txt | 2 +- .../components/bin2gray/CMakeLists.txt | 2 +- .../components/bin2grayv2/CMakeLists.txt | 2 +- .../managed/components/biquad/CMakeLists.txt | 2 +- .../components/biquadv2/CMakeLists.txt | 2 +- .../components/bitslice/CMakeLists.txt | 2 +- .../components/bitslicev2/CMakeLists.txt | 2 +- .../managed/components/bitwise/CMakeLists.txt | 2 +- .../components/bitwisev2/CMakeLists.txt | 2 +- .../managed/components/bldc/CMakeLists.txt | 15 + .../components/bldc_hall3/CMakeLists.txt | 2 +- .../components/bldc_hall3v2/CMakeLists.txt | 2 +- .../managed/components/blend/CMakeLists.txt | 2 +- .../managed/components/blendv2/CMakeLists.txt | 2 +- .../components/charge_pump/CMakeLists.txt | 2 +- .../components/charge_pumpv2/CMakeLists.txt | 2 +- .../managed/components/clarke2/CMakeLists.txt | 2 +- .../components/clarke2v2/CMakeLists.txt | 2 +- .../managed/components/clarke3/CMakeLists.txt | 2 +- .../components/clarke3v2/CMakeLists.txt | 2 +- .../components/clarkeinv/CMakeLists.txt | 2 +- .../components/clarkeinvv2/CMakeLists.txt | 2 +- .../managed/components/comp/CMakeLists.txt | 2 +- .../managed/components/compv2/CMakeLists.txt | 2 +- .../components/const_rt/CMakeLists.txt | 2 +- .../components/constant/CMakeLists.txt | 2 +- .../components/constantv2/CMakeLists.txt | 2 +- .../managed/components/conv/CMakeLists.txt | 2 +- .../managed/components/counter/CMakeLists.txt | 2 +- .../managed/components/ddt/CMakeLists.txt | 2 +- .../managed/components/ddtv2/CMakeLists.txt | 2 +- .../components/deadzone/CMakeLists.txt | 2 +- .../components/deadzonev2/CMakeLists.txt | 2 +- .../components/debounce/CMakeLists.txt | 2 +- .../components/debouncev2/CMakeLists.txt | 2 +- .../components/delayline/CMakeLists.txt | 2 +- .../managed/components/die/CMakeLists.txt | 19 ++ .../managed/components/div2/CMakeLists.txt | 2 +- .../managed/components/div2v2/CMakeLists.txt | 2 +- .../components/dummy_stepgen/CMakeLists.txt | 2 +- .../managed/components/edge/CMakeLists.txt | 2 +- .../managed/components/edgev2/CMakeLists.txt | 2 +- .../managed/components/encoder/CMakeLists.txt | 2 +- .../components/encoder_ratio/CMakeLists.txt | 2 +- .../components/encoder_ratiov2/CMakeLists.txt | 2 +- .../components/encoderv2/CMakeLists.txt | 2 +- .../components/estop_latch/CMakeLists.txt | 2 +- .../components/estop_latchv2/CMakeLists.txt | 2 +- .../components/failstop/CMakeLists.txt | 2 +- .../components/feedcomp/CMakeLists.txt | 2 +- .../components/feedcompv2/CMakeLists.txt | 2 +- .../components/flipflop/CMakeLists.txt | 2 +- .../components/flipflopv2/CMakeLists.txt | 2 +- .../managed/components/gantry/CMakeLists.txt | 2 +- .../components/gantryv2/CMakeLists.txt | 2 +- .../components/gearchange/CMakeLists.txt | 2 +- .../components/gearchangev2/CMakeLists.txt | 2 +- .../components/gray2bin/CMakeLists.txt | 2 +- .../components/gray2binv2/CMakeLists.txt | 2 +- .../managed/components/hbridge/CMakeLists.txt | 2 +- .../components/hbridgev2/CMakeLists.txt | 2 +- .../managed/components/hypot/CMakeLists.txt | 2 +- .../managed/components/hypotv2/CMakeLists.txt | 2 +- .../managed/components/icomp/CMakeLists.txt | 2 +- .../managed/components/idb/CMakeLists.txt | 2 +- .../managed/components/idbv2/CMakeLists.txt | 2 +- .../components/ilowpass/CMakeLists.txt | 2 +- .../components/ilowpassv2/CMakeLists.txt | 2 +- .../components/indextablev2/CMakeLists.txt | 2 +- .../managed/components/integ/CMakeLists.txt | 2 +- .../managed/components/integv2/CMakeLists.txt | 2 +- .../components/interpolator/CMakeLists.txt | 2 +- .../managed/components/invert/CMakeLists.txt | 2 +- .../components/invertv2/CMakeLists.txt | 2 +- .../managed/components/io_muxn/CMakeLists.txt | 2 +- .../components/io_muxnv2/CMakeLists.txt | 2 +- .../components/iring_demo/CMakeLists.txt | 2 +- .../components/joyhandle/CMakeLists.txt | 2 +- .../components/joyhandlev2/CMakeLists.txt | 2 +- .../components/jplanner/CMakeLists.txt | 2 +- .../components/knob2float/CMakeLists.txt | 2 +- .../components/knob2floatv2/CMakeLists.txt | 2 +- .../components/latencybins/CMakeLists.txt | 2 +- .../components/latencybinsv2/CMakeLists.txt | 2 +- .../managed/components/lcd/CMakeLists.txt | 2 +- .../managed/components/led_dim/CMakeLists.txt | 2 +- .../components/led_dimv2/CMakeLists.txt | 2 +- .../managed/components/lgantry/CMakeLists.txt | 2 +- .../components/lgantryv2/CMakeLists.txt | 2 +- .../managed/components/limit1/CMakeLists.txt | 2 +- .../components/limit1v2/CMakeLists.txt | 2 +- .../managed/components/limit2/CMakeLists.txt | 2 +- .../components/limit2v2/CMakeLists.txt | 2 +- .../managed/components/limit3/CMakeLists.txt | 2 +- .../components/limit3v2/CMakeLists.txt | 2 +- .../components/lincurve/CMakeLists.txt | 2 +- .../components/lincurvev2/CMakeLists.txt | 2 +- .../managed/components/logic/CMakeLists.txt | 19 ++ .../managed/components/lowpass/CMakeLists.txt | 2 +- .../components/lowpassv2/CMakeLists.txt | 2 +- .../managed/components/lut5/CMakeLists.txt | 2 +- .../managed/components/lut5v2/CMakeLists.txt | 2 +- .../managed/components/lutn/CMakeLists.txt | 2 +- .../components/lutn_demo/CMakeLists.txt | 2 +- .../managed/components/maj3/CMakeLists.txt | 2 +- .../managed/components/maj3v2/CMakeLists.txt | 2 +- .../managed/components/match8/CMakeLists.txt | 2 +- .../components/match8v2/CMakeLists.txt | 2 +- .../components/matrix_kb/CMakeLists.txt | 2 +- .../managed/components/maxn/CMakeLists.txt | 2 +- .../managed/components/maxnv2/CMakeLists.txt | 2 +- .../mesa_pktgyro_test/CMakeLists.txt | 24 ++ .../src/mesa_pktgyro_test.comp | 2 +- .../managed/components/message/CMakeLists.txt | 2 +- .../components/messagev2/CMakeLists.txt | 2 +- .../managed/components/minmax/CMakeLists.txt | 2 +- .../components/minmaxv2/CMakeLists.txt | 2 +- .../managed/components/minn/CMakeLists.txt | 2 +- .../managed/components/minnv2/CMakeLists.txt | 2 +- .../managed/components/mult2/CMakeLists.txt | 2 +- .../managed/components/mult2v2/CMakeLists.txt | 2 +- .../components/multiclick/CMakeLists.txt | 2 +- .../components/multiclickv2/CMakeLists.txt | 2 +- .../components/multiswitch/CMakeLists.txt | 2 +- .../components/multiswitchv2/CMakeLists.txt | 2 +- .../managed/components/mux16/CMakeLists.txt | 2 +- .../managed/components/mux16v2/CMakeLists.txt | 2 +- .../managed/components/mux2/CMakeLists.txt | 2 +- .../managed/components/mux2v2/CMakeLists.txt | 2 +- .../managed/components/mux4/CMakeLists.txt | 2 +- .../managed/components/mux4v2/CMakeLists.txt | 2 +- .../managed/components/mux8/CMakeLists.txt | 2 +- .../managed/components/mux8v2/CMakeLists.txt | 2 +- .../components/mux_generic/CMakeLists.txt | 2 +- .../managed/components/muxn/CMakeLists.txt | 2 +- .../components/muxn_u32/CMakeLists.txt | 2 +- .../components/muxn_u32v2/CMakeLists.txt | 2 +- .../managed/components/muxnv2/CMakeLists.txt | 2 +- .../managed/components/near/CMakeLists.txt | 2 +- .../managed/components/nearv2/CMakeLists.txt | 2 +- .../managed/components/neg/CMakeLists.txt | 2 +- .../managed/components/negv2/CMakeLists.txt | 2 +- .../managed/components/not/CMakeLists.txt | 2 +- .../managed/components/notv2/CMakeLists.txt | 2 +- .../managed/components/offset/CMakeLists.txt | 2 +- .../managed/components/offsetn/CMakeLists.txt | 2 +- .../components/offsetnv2/CMakeLists.txt | 2 +- .../components/offsetv2/CMakeLists.txt | 2 +- .../managed/components/oneshot/CMakeLists.txt | 2 +- .../components/oneshotv2/CMakeLists.txt | 2 +- .../managed/components/or2/CMakeLists.txt | 2 +- .../managed/components/or2v2/CMakeLists.txt | 2 +- .../managed/components/orient/CMakeLists.txt | 2 +- .../components/orientv2/CMakeLists.txt | 2 +- .../managed/components/orn/CMakeLists.txt | 2 +- .../managed/components/ornv2/CMakeLists.txt | 2 +- .../components/out_to_io/CMakeLists.txt | 2 +- .../components/out_to_iov2/CMakeLists.txt | 2 +- .../managed/components/pattern/CMakeLists.txt | 2 +- .../managed/components/pbmsgs/CMakeLists.txt | 2 +- .../managed/components/pbring/CMakeLists.txt | 2 +- .../managed/components/pepper/CMakeLists.txt | 2 +- .../managed/components/period/CMakeLists.txt | 2 +- .../managed/components/pid/CMakeLists.txt | 2 +- .../managed/components/pidv2/CMakeLists.txt | 2 +- .../components/pll_correction/CMakeLists.txt} | 28 +- .../pll_correction/src}/pll_correction.comp | 0 .../components/plug_demo/CMakeLists.txt | 2 +- .../components/probe_parport/CMakeLists.txt | 2 +- .../managed/components/pwmgen/CMakeLists.txt | 2 +- .../components/pwmgenv2/CMakeLists.txt | 2 +- .../managed/components/random/CMakeLists.txt | 2 +- .../managed/components/remote/CMakeLists.txt} | 27 +- .../components/remote/src/remote.comp | 0 .../managed/components/reset/CMakeLists.txt | 2 +- .../managed/components/resetv2/CMakeLists.txt | 2 +- .../components/ringread/CMakeLists.txt | 20 ++ .../components/ringwrite/CMakeLists.txt | 20 ++ .../rtapi-malloc-free/CMakeLists.txt | 20 ++ ...{testalloc.comp => rtapi_malloc_free.comp} | 4 +- .../managed/components/rtfault/CMakeLists.txt | 20 ++ .../managed/components/rtmon/CMakeLists.txt | 19 ++ .../components/safety_latch/CMakeLists.txt | 2 +- .../components/safety_latchv2/CMakeLists.txt | 2 +- .../components/sample_hold/CMakeLists.txt | 2 +- .../components/sample_holdv2/CMakeLists.txt | 2 +- .../managed/components/sampler/CMakeLists.txt | 2 +- .../managed/components/scale/CMakeLists.txt | 2 +- .../components/scope_rt/CMakeLists.txt | 2 +- .../managed/components/select8/CMakeLists.txt | 2 +- .../components/select8v2/CMakeLists.txt | 2 +- .../managed/components/selectn/CMakeLists.txt | 2 +- .../components/selectnv2/CMakeLists.txt | 2 +- .../managed/components/siggen/CMakeLists.txt | 2 +- .../sim_axis_hardware/CMakeLists.txt | 2 +- .../sim_axis_hardwarev2/CMakeLists.txt | 2 +- .../components/sim_encoder/CMakeLists.txt | 2 +- .../components/sim_parport/CMakeLists.txt | 2 +- .../components/sim_parportv2/CMakeLists.txt | 2 +- .../components/sim_spindle/CMakeLists.txt | 2 +- .../components/sim_spindlev2/CMakeLists.txt | 2 +- .../components/sphereprobe/CMakeLists.txt | 2 +- .../components/sphereprobev2/CMakeLists.txt | 2 +- .../managed/components/stats/CMakeLists.txt | 2 +- .../managed/components/statsv2/CMakeLists.txt | 2 +- .../managed/components/stepgen/CMakeLists.txt | 2 +- .../components/stepgenv2/CMakeLists.txt | 2 +- .../components/steptest/CMakeLists.txt | 2 +- .../components/steptestv2/CMakeLists.txt | 2 +- .../components/streamer/CMakeLists.txt | 2 +- .../managed/components/sum2/CMakeLists.txt | 2 +- .../managed/components/sum2v2/CMakeLists.txt | 2 +- .../managed/components/sumn/CMakeLists.txt | 2 +- .../managed/components/sumnv2/CMakeLists.txt | 2 +- .../managed/components/svalev2/CMakeLists.txt | 2 +- .../components/symbols_define/CMakeLists.txt | 45 +++ .../symbols_define/src/symbols_define.comp | 2 +- .../symbols_define_out/CMakeLists.txt | 45 +++ .../src/symbols_define_out.comp | 2 +- .../components/symbols_use/CMakeLists.txt} | 25 +- .../symbols_use/src/symbols_use.comp | 2 +- .../components/symbols_use_out/CMakeLists.txt | 45 +++ .../symbols_use_out/src/symbols_use_out.comp | 3 +- .../managed/components/thc/CMakeLists.txt | 20 +- .../managed/components/thcud/CMakeLists.txt | 21 ++ .../managed/components/threads/CMakeLists.txt | 2 +- .../components/threadtest/CMakeLists.txt | 2 +- .../components/threadtestv2/CMakeLists.txt | 2 +- .../managed/components/time/CMakeLists.txt | 2 +- .../components/timedelay/CMakeLists.txt | 2 +- .../components/timedelayv2/CMakeLists.txt | 2 +- .../components/timedelta/CMakeLists.txt | 2 +- .../components/timedeltav2/CMakeLists.txt | 2 +- .../managed/components/timev2/CMakeLists.txt | 2 +- .../managed/components/toggle/CMakeLists.txt | 2 +- .../components/toggle2nist/CMakeLists.txt | 2 +- .../components/toggle2nistv2/CMakeLists.txt | 2 +- .../components/togglev2/CMakeLists.txt | 2 +- .../components/tristate_bit/CMakeLists.txt | 2 +- .../components/tristate_bitv2/CMakeLists.txt | 2 +- .../components/tristate_float/CMakeLists.txt | 2 +- .../tristate_floatv2/CMakeLists.txt | 2 +- .../managed/components/uf_demo/CMakeLists.txt | 2 +- .../managed/components/updown/CMakeLists.txt | 2 +- .../components/updownv2/CMakeLists.txt | 2 +- .../components/vari_bit_adc/CMakeLists.txt | 20 ++ .../managed/components/watch/CMakeLists.txt | 2 +- .../components/watchdog/CMakeLists.txt | 2 +- .../components/watchdogv2/CMakeLists.txt | 2 +- .../managed/components/wcomp/CMakeLists.txt | 2 +- .../managed/components/wcompn/CMakeLists.txt | 2 +- .../components/wcompnv2/CMakeLists.txt | 2 +- .../managed/components/wcompv2/CMakeLists.txt | 2 +- .../components/weighted_sum/CMakeLists.txt | 2 +- .../components/weighted_sumv2/CMakeLists.txt | 2 +- .../components/xhc_hb04_util/CMakeLists.txt | 2 +- .../components/xhc_hb04_utilv2/CMakeLists.txt | 2 +- .../managed/components/xor2/CMakeLists.txt | 2 +- .../managed/components/xor2v2/CMakeLists.txt | 2 +- src/modules/managed/drivers/CMakeLists.txt | 2 +- .../managed/drivers/chip/CMakeLists.txt | 2 +- .../drivers/hal_arm335xQEP/CMakeLists.txt | 2 +- .../drivers/hal_ax5214h/CMakeLists.txt | 2 +- .../drivers/hal_bb_gpio/CMakeLists.txt | 2 +- .../managed/drivers/hal_evoreg/CMakeLists.txt | 2 +- .../managed/drivers/hal_gm/CMakeLists.txt | 2 +- .../drivers/hal_h3_gpio/CMakeLists.txt | 2 +- .../managed/drivers/hal_motenc/CMakeLists.txt | 2 +- .../managed/drivers/hal_p260c/CMakeLists.txt | 2 +- .../drivers/hal_parport/CMakeLists.txt | 2 +- .../managed/drivers/hal_ppmc/CMakeLists.txt | 2 +- .../managed/drivers/hal_pru/CMakeLists.txt | 2 +- .../drivers/hal_pru_debug/CMakeLists.txt | 2 +- .../drivers/hal_pru_generic/CMakeLists.txt | 4 +- .../drivers/hal_raspi_gpio/CMakeLists.txt | 7 +- .../drivers/hal_raspi_spi/CMakeLists.txt | 2 +- .../drivers/hal_skeleton/CMakeLists.txt | 2 +- .../drivers/hal_speaker/CMakeLists.txt | 2 +- .../managed/drivers/hal_tiro/CMakeLists.txt | 2 +- .../managed/drivers/hal_vti/CMakeLists.txt | 2 +- .../drivers/hal_zed_can/CMakeLists.txt | 2 +- .../drivers/hal_zed_gpio/CMakeLists.txt | 2 +- .../hostmot2/hostmot2_7i43/CMakeLists.txt | 2 +- .../hostmot2/hostmot2_7i90/CMakeLists.txt | 2 +- .../hostmot2/hostmot2_core/CMakeLists.txt | 2 +- .../hostmot2_core/test/CMakeLists.txt | 2 +- .../hostmot2/hostmot2_eth/CMakeLists.txt | 2 +- .../hostmot2/hostmot2_pci/CMakeLists.txt | 2 +- .../hostmot2_setsserial/CMakeLists.txt | 2 +- .../hostmot2/hostmot2_soc_ol/CMakeLists.txt | 2 +- .../drivers/hostmot2/mesa_7i65/CMakeLists.txt | 24 ++ .../drivers/hostmot2/mesa_uart/CMakeLists.txt | 24 ++ .../managed/drivers/opto_ac5/CMakeLists.txt | 2 +- .../managed/drivers/pci_8255/CMakeLists.txt | 2 +- .../drivers/{plc720 => pcl720}/CMakeLists.txt | 49 ++- .../{plc720 => pcl720}/src/pcl720.comp | 0 .../managed/drivers/serport/CMakeLists.txt | 49 ++- .../drivers/servo_to_go/CMakeLists.txt | 2 +- .../managed/drivers/uparport/CMakeLists.txt | 2 +- .../unmanaged/components/CMakeLists.txt | 1 - .../unmanaged/components/input/CMakeLists.txt | 50 +++- .../components/ringdemo/CMakeLists.txt | 53 +++- .../components/scounter/CMakeLists.txt | 20 ++ .../components/storage/CMakeLists.txt | 50 +++- .../components/videoserver/CMakeLists.txt | 50 +++- .../unmanaged/drivers/adxl345/CMakeLists.txt | 22 ++ .../drivers/gpio_mcp23017/CMakeLists.txt | 53 +++- .../unmanaged/drivers/gy68/CMakeLists.txt | 50 +++- .../drivers/pwm_pca9685/CMakeLists.txt | 50 +++- .../drivers/temp_ads7828/CMakeLists.txt | 50 +++- .../drivers/temp_atlas/CMakeLists.txt | 50 +++- .../unmanaged/drivers/temp_bbb/CMakeLists.txt | 52 +++- .../languages/CMakeASM-PRUInformation.cmake | 6 +- support/cmake/tools/PEP427Installer.cmake | 6 +- support/cmake/tools/PEP503PythonIndex.cmake | 29 +- .../{createIndex.py => create_index.py.in} | 5 +- tests/CMakeLists.txt | 28 +- tests/nosetests/rtapilog.py | 2 +- tests/nosetests/runpytest.sh | 6 +- tests/nosetests/test_compat.py | 7 +- tests/nosetests/test_groups.py | 2 +- tests/nosetests/test_icomp.py | 3 +- tests/nosetests/test_instbindings.py | 5 +- tests/nosetests/test_mk_hal_basics.py | 3 +- tests/nosetests/test_netcmd.py | 6 +- tests/nosetests/test_or2.py | 5 +- tests/nosetests/test_pinops.py | 4 +- tests/nosetests/test_ring.py | 4 +- tests/nosetests/test_ring_intracomp.py | 4 +- tests/nosetests/test_ringdemo.py | 4 +- tests/nosetests/test_rtapi.py | 5 +- tests/nosetests/test_streamring.py | 4 +- tests/runtests/{README => README.asciidoc} | 0 tests/runtests/halmodule.0/test.py | 2 +- .../pll_correction/pll_correction.hal | 2 +- tests/runtests/symbols.0/dotest.hal | 4 +- tests/runtests/symbols.0/test.sh | 2 - tests/runtests/symbols.1/dotest.hal | 12 +- tests/runtests/symbols.1/test.sh | 2 - tests/runtests/usercomp.0/checkresult | 2 +- tests/runtests/usercomp.0/test.sh | 2 +- 467 files changed, 5225 insertions(+), 1068 deletions(-) create mode 100644 src/executables/comp/src/MachinekitHALCompFunction.cmake rename src/executables/instcomp/src/{MachinekitHALInstcomp.cmake => MachinekitHALInstcompFunction.cmake} (91%) create mode 100644 src/libraries/cycompat/src/CMakeLists.txt.in create mode 100644 src/libraries/cycompat/src/build.py create mode 100644 src/libraries/cycompat/src/pyproject.toml.in rename src/libraries/cyhal/{README.from => README.asciidoc} (100%) rename src/libraries/cyhal/examples/{README => README.asciidoc} (100%) create mode 100644 src/libraries/cyhal/src/CMakeLists.txt.in create mode 100644 src/libraries/cyhal/src/build.py create mode 100644 src/libraries/cyhal/src/pyproject.toml.in rename src/libraries/cyhal/{ => test}/test.py (100%) rename src/libraries/cyruntime/include/{ => cyruntime}/rtapi.pxd (90%) create mode 100644 src/libraries/cyruntime/src/CMakeLists.txt.in create mode 100644 src/libraries/cyruntime/src/build.py create mode 100644 src/libraries/cyruntime/src/pyproject.toml.in create mode 100644 src/libraries/cyshmcommon/src/CMakeLists.txt.in create mode 100644 src/libraries/cyshmcommon/src/build.py create mode 100644 src/libraries/cyshmcommon/src/pyproject.toml.in create mode 100644 src/libraries/export_package/CMakeLists.txt create mode 100644 src/libraries/export_package/src/Machinekit-HALConfig.cmake.in create mode 100644 src/libraries/hal/cmake/MachinekitHALManaged-HALComponent.cmake.in create mode 100644 src/libraries/hal/cmake/MachinekitHALUnmanaged-HALComponent.cmake.in rename src/{modules/unmanaged/components/remote => libraries/hal/test}/CMakeLists.txt (100%) create mode 100644 src/libraries/hal_command/cmake/MachinekitHALHAL-CommandComponent.cmake.in rename src/libraries/pyhalmodule/src/{hal.py => __init__.py} (96%) create mode 100644 src/libraries/runtime/cmake/MachinekitHALManaged-RuntimeComponent.cmake.in create mode 100644 src/libraries/runtime/cmake/MachinekitHALUnmanaged-RuntimeComponent.cmake.in rename src/libraries/symbol_visibility/src/{MachinekitHALSymbolVisibility.cmake => MachinekitHALSymbolVisibilityFunction.cmake} (95%) rename src/{executables/instcomp/src/MachinekitHALInstcompInternal.cmake.in => modules/managed/components/pll_correction/CMakeLists.txt} (57%) rename {tests/runtests/pll_correction => src/modules/managed/components/pll_correction/src}/pll_correction.comp (100%) rename src/{libraries/hal/cmake/MachinekitHALUNMANAGED-HALComponent.cmake.in => modules/managed/components/remote/CMakeLists.txt} (60%) rename src/modules/{unmanaged => managed}/components/remote/src/remote.comp (100%) rename src/modules/managed/components/rtapi-malloc-free/src/{testalloc.comp => rtapi_malloc_free.comp} (96%) create mode 100644 src/modules/managed/components/symbols_define/CMakeLists.txt rename tests/runtests/symbols.0/test_define.comp => src/modules/managed/components/symbols_define/src/symbols_define.comp (77%) create mode 100644 src/modules/managed/components/symbols_define_out/CMakeLists.txt rename tests/runtests/symbols.1/test_define1.comp => src/modules/managed/components/symbols_define_out/src/symbols_define_out.comp (77%) rename src/{libraries/hal/cmake/MachinekitHALMANAGED-HALComponent.cmake.in => modules/managed/components/symbols_use/CMakeLists.txt} (61%) rename tests/runtests/symbols.0/test_use.comp => src/modules/managed/components/symbols_use/src/symbols_use.comp (80%) create mode 100644 src/modules/managed/components/symbols_use_out/CMakeLists.txt rename tests/runtests/symbols.1/test_use1.comp => src/modules/managed/components/symbols_use_out/src/symbols_use_out.comp (78%) rename src/modules/managed/drivers/{plc720 => pcl720}/CMakeLists.txt (59%) rename src/modules/managed/drivers/{plc720 => pcl720}/src/pcl720.comp (100%) rename support/cmake/tools/PEP503PythonIndex/{createIndex.py => create_index.py.in} (88%) rename tests/runtests/{README => README.asciidoc} (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0462d36603..4c8eda7444 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,10 +24,12 @@ # ##################################################################### # ~~~ -cmake_minimum_required(VERSION 3.21) +cmake_minimum_required(VERSION 3.22) set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE) set(CMAKE_EXPORT_LINK_COMMANDS TRUE) +set(CMAKE_DISABLE_SOURCE_CHANGES TRUE) +set(CMAKE_DISABLE_IN_SOURCE_BUILD TRUE) project( Machinekit-HAL @@ -42,6 +44,26 @@ if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") enable_testing() endif() +if(CMAKE_TOOLCHAIN_FILE) + cmake_path(IS_RELATIVE CMAKE_TOOLCHAIN_FILE _toolchain_file_is_relative) + if(_toolchain_file_is_relative) + file(REAL_PATH "${CMAKE_TOOLCHAIN_FILE}" _toolchain_path BASE_DIRECTORY + "${CMAKE_BINARY_DIR}" EXPAND_TILDE) + if(NOT EXISTS "${_toolchain_path}") + message( + FATAL_ERROR "Specified Toolchain file ${_toolchain_path} doesn't exist!" + ) + endif() + set(CMAKE_TOOLCHAIN_FILE "${_toolchain_path}") + message( + WARNING + "CMAKE_TOOLCHAIN_FILE set to ${CMAKE_TOOLCHAIN_FILE} to resolve the relative path issue. Please, avoid using relative paths!" + ) + unset(_toolchain_path) + endif() + unset(_toolchain_file_is_relative) +endif() + string(REGEX REPLACE "[-~ .]" "_" MACHINEKIT_HAL_PACKAGE_PREFIX_NORMALIZED ${CMAKE_PROJECT_NAME}) string(TOLOWER ${MACHINEKIT_HAL_PACKAGE_PREFIX_NORMALIZED} @@ -95,14 +117,15 @@ message(STATUS "Value of CMAKE_EXE_LINKER_FLAGS: ${CMAKE_EXE_LINKER_FLAGS}") set(MACHINEKIT_HAL_GIT_BUILD_SHA "aaabbbccc") # TODO: Set based on actual Git # SHA + define_property( - GLOBAL - PROPERTY MACHINEKIT_HAL_MODULE_PATH - BRIEF_DOCS "Machinekit-HAL specific CMake module PATH" + TARGET + PROPERTY "PUBLIC_INCLUDE_DIRECTORY" + BRIEF_DOCS "Header directory for a target" FULL_DOCS [[ - Special global property specific to Machinekit-HAL's build tree holding the set of PATHs - to defined CMake Modules in the source-tree. + Special traget specific property for storing a path to directory where PUBLIC HEADERS + live, typically the "include/package_name" one ]]) add_subdirectory(src) diff --git a/debian/bootstrap b/debian/bootstrap index ae842a891c..6ea6dbf532 100755 --- a/debian/bootstrap +++ b/debian/bootstrap @@ -233,6 +233,23 @@ check_necessity_of_pasm() { return 0 } +check_necessity_of_importlib_resourses() { + local python="$(apt-cache show python3.6)" + local retval="$?" + if ((retval != 0 )) + then + log_error "Command 'apt-cache show python3-importlib-resources' returned error code $retval!" + return -1 + fi + + if [[ ! -z "$python" ]] + then + BUILDTIME_DEPENDENCIES+=", python3-importlib-resources:native" + fi + + return 0 +} + test_dir(){ local version_file="$1/VERSION" local readme_file="$1/README.md" @@ -353,6 +370,12 @@ _main(){ then failure fi + check_necessity_of_importlib_resourses + retval=$? + if (( retval != 0 )) + then + failure + fi generate_control_file retval=$? if (( retval != 0 )) diff --git a/debian/buildsystem/Dockerfile b/debian/buildsystem/Dockerfile index b4e013994b..422f107a8d 100644 --- a/debian/buildsystem/Dockerfile +++ b/debian/buildsystem/Dockerfile @@ -125,11 +125,11 @@ RUN curl -1vLf --output /tmp/cmake.sh && \ bash /tmp/cmake.sh --skip-license --prefix=/usr/local -# Python 3.9 has --upgrade-deps, but lower versions needs manual action +# Python 3.9 has --upgrade-deps, but lower versions need manual action RUN python3 -m venv /home/${USER}/pybuild \ --system-site-packages && \ /home/${USER}/pybuild/bin/pip install \ - --upgrade pip build setuptools + --upgrade pip setuptools RUN ln -s /home/${USER}/pybuild/bin/activate \ /opt/environment/pyactivate diff --git a/debian/control.in b/debian/control.in index 08b82ca7d8..9c848f57c1 100644 --- a/debian/control.in +++ b/debian/control.in @@ -48,9 +48,11 @@ Build-Depends: libprotoc-dev:native (>= 2.4.1), python3-simplejson:native, python3-sh:native, + python3-installer:native, python3-pytest:native, libcgroup-dev, yapps2:native, + python3-build:native, python3-yapps:native, python3-pyftpdlib:native, python3-pip:native, diff --git a/debian/debianMultiarchToolchain.cmake b/debian/debianMultiarchToolchain.cmake index 6101a07827..ee1deff545 100644 --- a/debian/debianMultiarchToolchain.cmake +++ b/debian/debianMultiarchToolchain.cmake @@ -70,6 +70,13 @@ if(DEFINED ENV{DEB_BUILD_GNU_TYPE} set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + # Is the ARMHF platform the only one with a special name? + if("$ENV{DEB_HOST_GNU_CPU}" STREQUAL "arm") + set(PYTHON_PLAT_NAME "$ENV{DEB_HOST_ARCH_OS}-armv7l") + else() + set(PYTHON_PLAT_NAME "$ENV{DEB_HOST_ARCH_OS}-$ENV{DEB_HOST_GNU_CPU}") + endif() + # Prepend the architecture specific include directories to the compiler # search path include_directories(BEFORE "/usr/$ENV{DEB_HOST_GNU_TYPE}/include" diff --git a/debian/rules b/debian/rules index 02c2d8b366..18af1c431b 100755 --- a/debian/rules +++ b/debian/rules @@ -29,7 +29,7 @@ DEBIAN_BULLSEYE_VERSION :=11 # Turn OFF the Link-Time Optimization (LTO) during compilation as it clashes with the # current version of linker script turning symbols of HAL modules local (defined -# in 'MachinekitHALSymbolVisibility.cmake' CMake file) +# in 'MachinekitHALSymbolVisibilityFunction.cmake' CMake file) DEB_CFLAGS_MAINT_STRIP :=-flto=auto -ffat-lto-objects DEB_CXXFLAGS_MAINT_STRIP :=-flto=auto -ffat-lto-objects DEB_LDFLAGS_MAINT_STRIP :=-flto=auto @@ -43,6 +43,19 @@ DEB_CXXFLAGS_MAINT_APPEND :=-O0 # Do not warn on potential reproducible build datetime mismatch DEB_CPPFLAGS_MAINT_STRIP :=-Wdate-time +# Python3 distro specific paths used for installation of Pythonic +# packages to the system +# TODO: Are these paths right? +MACHINEKIT_HAL_PYTHON_STDLIB_FULL_INSTALL_DIRECTORY :=/usr/lib +MACHINEKIT_HAL_PYTHON_PURELIB_FULL_INSTALL_DIRECTORY :=/usr/lib/python3/dist-packages +MACHINEKIT_HAL_PYTHON_PLATSTDLIB_FULL_INSTALL_DIRECTORY :=/usr/lib/python3 +MACHINEKIT_HAL_PYTHON_PLATLIB_FULL_INSTALL_DIRECTORY :=/usr/lib/python3/dist-packages +MACHINEKIT_HAL_PYTHON_INCLUDE_FULL_INSTALL_DIRECTORY :=/usr/include +MACHINEKIT_HAL_PYTHON_PLATINCLUDE_FULL_INSTALL_DIRECTORY :=/usr/include +MACHINEKIT_HAL_PYTHON_SCRIPTS_FULL_INSTALL_DIRECTORY :=/usr/bin +MACHINEKIT_HAL_PYTHON_DATA_FULL_INSTALL_DIRECTORY :=/usr +MACHINEKIT_HAL_PYTHON_INTERPRETER_INSTALL_EXECUTABLE :=/usr/bin/python3 + export DEB_CFLAGS_MAINT_STRIP export DEB_CXXFLAGS_MAINT_STRIP export DEB_LDFLAGS_MAINT_STRIP @@ -52,7 +65,16 @@ export DEB_CPPFLAGS_MAINT_STRIP override_dh_auto_configure: dh_auto_configure -- \ - --toolchain $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))/debianMultiarchToolchain.cmake + --toolchain $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))/debianMultiarchToolchain.cmake \ + -DMACHINEKIT_HAL_PYTHON_STDLIB_FULL_INSTALL_DIRECTORY=$(MACHINEKIT_HAL_PYTHON_STDLIB_FULL_INSTALL_DIRECTORY) \ + -DMACHINEKIT_HAL_PYTHON_PURELIB_FULL_INSTALL_DIRECTORY=$(MACHINEKIT_HAL_PYTHON_PURELIB_FULL_INSTALL_DIRECTORY) \ + -DMACHINEKIT_HAL_PYTHON_PLATSTDLIB_FULL_INSTALL_DIRECTORY=$(MACHINEKIT_HAL_PYTHON_PLATSTDLIB_FULL_INSTALL_DIRECTORY) \ + -DMACHINEKIT_HAL_PYTHON_PLATLIB_FULL_INSTALL_DIRECTORY=$(MACHINEKIT_HAL_PYTHON_PLATLIB_FULL_INSTALL_DIRECTORY) \ + -DMACHINEKIT_HAL_PYTHON_INCLUDE_FULL_INSTALL_DIRECTORY=$(MACHINEKIT_HAL_PYTHON_INCLUDE_FULL_INSTALL_DIRECTORY) \ + -DMACHINEKIT_HAL_PYTHON_PLATINCLUDE_FULL_INSTALL_DIRECTORY=$(MACHINEKIT_HAL_PYTHON_PLATINCLUDE_FULL_INSTALL_DIRECTORY) \ + -DMACHINEKIT_HAL_PYTHON_SCRIPTS_FULL_INSTALL_DIRECTORY=$(MACHINEKIT_HAL_PYTHON_SCRIPTS_FULL_INSTALL_DIRECTORY) \ + -DMACHINEKIT_HAL_PYTHON_DATA_FULL_INSTALL_DIRECTORY=$(MACHINEKIT_HAL_PYTHON_DATA_FULL_INSTALL_DIRECTORY) \ + -DMACHINEKIT_HAL_PYTHON_INTERPRETER_INSTALL_EXECUTABLE=$(MACHINEKIT_HAL_PYTHON_INTERPRETER_INSTALL_EXECUTABLE) override_dh_auto_test: # Only run tests (CTest) when not cross-compiling diff --git a/debian/runtests.py b/debian/runtests.py index 7a5006e234..c05c448403 100755 --- a/debian/runtests.py +++ b/debian/runtests.py @@ -43,6 +43,7 @@ import shutil import pathlib import tempfile +from contextlib import nullcontext from typing import Union, List import importlib.util @@ -133,9 +134,11 @@ def run_runtests(self, test_path: pathlib.Path = None) -> None: test_path = test_path if isinstance( test_path, pathlib.Path) else pathlib.Path(test_path) for config in self.configs: - config_test_path = self.build_directory / config if self.generator == "Ninja Multi-Config" else "." / \ + config_test_path = self.build_directory / \ + (config if self.generator == "Ninja Multi-Config" else ".") / \ "share" / "machinekit" / "hal" / "testsuite" / \ "runtests" if test_path is None else test_path + test_directory = pathlib.Path(tempfile.mkdtemp(suffix=config)) destination = test_directory / "runtests" print( @@ -144,6 +147,7 @@ def run_runtests(self, test_path: pathlib.Path = None) -> None: shutil.copytree(config_test_path, destination, ignore=shutil.ignore_patterns( 'pipe-*', 'result', 'strerr')) bash_command_string = f". {self._envrc_path(config)}; run_runtests {destination}" + sh.bash("-c", bash_command_string, _out=sys.stdout.buffer, _err=sys.stderr.buffer) @@ -152,13 +156,16 @@ def run_ctests(self) -> None: sh.ctest("-C", config, _cwd=self.build_directory, _out=sys.stdout.buffer, _err=sys.stderr.buffer) - # def run_python_tests(self: object) -> None: - # bash_command_string = ". {0}; ./nosetests/runpytest.sh".format( - # self.rip_environment_path) - # sh.bash("-c", bash_command_string, - # _cwd=self.normalized_path, - # _out=sys.stdout.buffer, - # _err=sys.stderr.buffer) + def run_python_tests(self: object) -> None: + runpytest_path = self.source_directory / "tests" / "nosetests" / "runpytest.sh" + for config in self.configs: + print( + f"--->PyTests for config {config}.<---" + "\n====================================") + bash_command_string = f". {self._envrc_path(config)}; {runpytest_path}" + sh.bash("-c", bash_command_string, + _out=sys.stdout.buffer, + _err=sys.stderr.buffer) def configure(self, cache: dict = dict()) -> None: @@ -176,28 +183,28 @@ def configure(self, _out=sys.stdout.buffer) def build(self, - target: str = None) -> None: + target: str = None, + sudo: bool = False) -> None: number_of_cores_string = sh.nproc(_tty_out=False).strip() build_additional = list() if target is not None: build_additional.append(["--target", target]) + if sudo: + _context = sh.contrib.sudo( + password=self.sudo_password, _with=True, _out=sys.stdout.buffer) + else: + _context = nullcontext() + for config in self.configs: - sh.cmake("--build", self.build_directory, - "-j", number_of_cores_string, - "--verbose", - "--config", config, - *build_additional, - _out=sys.stdout.buffer) - - # sh.Command(autogen_path)(_cwd=src_directory, _out=sys.stdout.buffer) - # configure_path = "{0}/configure".format(src_directory) - # sh.Command(configure_path)(_cwd=src_directory, _out=sys.stdout.buffer) - # sh.make("-j", number_of_cores_string, - # _cwd=src_directory, _out=sys.stdout.buffer) - # sh.sudo("-S", "make", "setuid", _in=self.sudo_password, - # _cwd=src_directory, _out=sys.stdout.buffer) + with _context: + sh.cmake("--build", self.build_directory, + "-j", number_of_cores_string, + "--verbose", + "--config", config, + *build_additional, + _out=sys.stdout.buffer) def test_for_sudo(self: object) -> bool: try: @@ -245,8 +252,10 @@ def main(args): build_script.configure() if not args.no_build: build_script.build() - # or args.no_python_tests): - if not (args.no_runtests or args.no_ctests): + build_script.build(target='binary_tree_venv') + build_script.build(target='setuid', sudo=True) + + if not (args.no_runtests or args.no_ctests or args.no_python_tests): build_script.disable_zeroconf() if not args.no_runtests: try: @@ -262,8 +271,13 @@ def main(args): exception = True print(e) print("Run of Machinekit-HAL's CTests FAILED!") - # if not args.no_python_tests: - # build_script.run_python_tests() + if not args.no_python_tests: + try: + build_script.run_python_tests() + except Exception as e: + exception = True + print(e) + print("Run of Machinekit-HAL's PyTests FAILED!") except ValueError as e: print(e) exception = True @@ -349,6 +363,7 @@ def __call__(self, parser, namespace, values, option_string=None): dest="sudo_password", action="store", metavar="PASSWORD", + default="", help="Password for usage with sudo command.") parser.add_argument("--no-configure", @@ -367,9 +382,9 @@ def __call__(self, parser, namespace, values, option_string=None): action="store_true", help="Do not run CMake CTest tests") - # parser.add_argument("--no-python-tests", - # action="store_true", - # help="Do not run python tests") + parser.add_argument("--no-python-tests", + action="store_true", + help="Do not run python tests") args = parser.parse_args() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 94e2da2b15..8581f55953 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -80,11 +80,12 @@ if(NOT MACHINEKIT_HAL_TEST_OUTPUT_DIRECTORY) "${MACHINEKIT_HAL_ARTIFACTS_MOUNTPOINT_DIRECTORY}/${MACHINEKIT_HAL_TEST_DIRECTORY}" ) endif() -# The export contains versions for all configuration, so there is no need for the configuration -# specific ${MACHINEKIT_HAL_ARTIFACTS_MOUNTPOINT_DIRECTORY} (and it even cannot be used for generator -# expression in it), but to have direct similarity to install TREE, use the './lib//cmake' -# format even for BUILD tree (even though it may seem odd) -# TODO: Investigate if this is really the best solution (as the relative path change does not matter much) +# The export contains versions for all configuration, so there is no need for +# the configuration specific ${MACHINEKIT_HAL_ARTIFACTS_MOUNTPOINT_DIRECTORY} +# (and it even cannot be used for generator expression in it), but to have +# direct similarity to install TREE, use the './lib//cmake' format +# even for BUILD tree (even though it may seem odd) TODO: Investigate if this is +# really the best solution (as the relative path change does not matter much) if(NOT MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY) set(MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${MACHINEKIT_HAL_CMAKE_PACKAGE_DIRECTORY}") @@ -185,6 +186,13 @@ if(BUILD_PYTHON_DISTRIBUTIONS) COMPONENTS Interpreter Development REQUIRED) + set(MACHINEKIT_HAL_PYTHON_INTERPRETER_INSTALL_EXECUTABLE + "${Python_EXECUTABLE}" + CACHE + FILEPATH + "Path to the Python3 interpreter which will be used as main execution interpreter for installed COMPONENTS." + ) + if(NOT MACHINEKIT_HAL_PYTHON_STDLIB_FULL_INSTALL_DIRECTORY) set(MACHINEKIT_HAL_PYTHON_STDLIB_FULL_INSTALL_DIRECTORY "${Python_STDLIB}") endif() @@ -225,6 +233,11 @@ if(BUILD_PYTHON_DISTRIBUTIONS) include(PEP503PythonIndex) endif() +list(APPEND CMAKE_MODULE_PATH + "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}") +list(APPEND CMAKE_PREFIX_PATH + "${MACHINEKIT_HAL_ARTIFACTS_MOUNTPOINT_DIRECTORY}") + add_subdirectory(libraries) add_subdirectory(executables) add_subdirectory(modules) diff --git a/src/executables/CMakeLists.txt b/src/executables/CMakeLists.txt index 1af4158f56..9330d4bee5 100644 --- a/src/executables/CMakeLists.txt +++ b/src/executables/CMakeLists.txt @@ -24,9 +24,7 @@ # ##################################################################### # ~~~ -add_custom_target( - setuid - COMMENT "Setting the setuid bit on selected targets") +add_custom_target(setuid COMMENT "Setting the setuid bit on selected targets") add_subdirectory(comp) add_subdirectory(decode_protobuf) diff --git a/src/executables/bitfile/CMakeLists.txt b/src/executables/bitfile/CMakeLists.txt index 6b814b42c3..45f09f09f1 100644 --- a/src/executables/bitfile/CMakeLists.txt +++ b/src/executables/bitfile/CMakeLists.txt @@ -62,17 +62,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - comp_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/bitfile.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/bitfile.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Executable_Bitfile_Python_Packages) diff --git a/src/executables/comp/CMakeLists.txt b/src/executables/comp/CMakeLists.txt index aaa86b730e..3ff754c854 100644 --- a/src/executables/comp/CMakeLists.txt +++ b/src/executables/comp/CMakeLists.txt @@ -33,6 +33,16 @@ if(BUILD_PYTHON_DISTRIBUTIONS) find_program(PYPROJECT_BUILD "pyproject-build" REQUIRED) include(PEP427Installer) + define_property( + GLOBAL + PROPERTY MACHINEKIT_HAL_COMP + BRIEF_DOCS "Path to the Comp executable" + FULL_DOCS + [[ + Machinekit-HAL buildsystem (internal only) global property to specify the legacy Comp + executable (which should live in a special Python virtual environment). + ]]) + set(PACKAGE_NAME "comp") set(DISTRIBUTION_NAME "${MACHINEKIT_HAL_PACKAGE_PREFIX}_${PACKAGE_NAME}") @@ -67,17 +77,82 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - comp_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/comp.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/comp.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_comp_executable.stamp + DEPENDS ${DISTRIBUTION_NAME}_wheel_distribution + COMMAND Python::Interpreter "-m" "venv" + "${CMAKE_CURRENT_BINARY_DIR}/venv_comp" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "${CMAKE_CURRENT_BINARY_DIR}/venv_comp/bin/pip" "install" + "--force-reinstall" "${OUTPUT_INDEX}/*.whl" + COMMENT "Creating virtual environment for the 'comp' tool") + + add_custom_target( + comp_executable ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_comp_executable.stamp + COMMENT "Building the virtual environment for the 'comp' tool") + + add_dependencies(comp_executable ${DISTRIBUTION_NAME}_wheel_distribution) + + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/src/MachinekitHALCompFunction.cmake + ${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALCompFunction.cmake + @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) + + set_property( + GLOBAL PROPERTY MACHINEKIT_HAL_COMP + "${CMAKE_CURRENT_BINARY_DIR}/venv_comp/bin/comp") install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Executable_Comp_Python_Packages) diff --git a/src/executables/comp/src/MachinekitHALCompFunction.cmake b/src/executables/comp/src/MachinekitHALCompFunction.cmake new file mode 100644 index 0000000000..c06637c27f --- /dev/null +++ b/src/executables/comp/src/MachinekitHALCompFunction.cmake @@ -0,0 +1,255 @@ +# ~~~ +# #################################################################### +# Description: MachinekitHALCompFunction.cmake +# +# This file, 'MachinekitHALCompFunction.cmake', implements +# CMake module to build Machinekit-HAL managed HAL modules +# from the '.comp' template files +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +# ##################################################################### +# ~~~ + +# TODO: Separate common functionality into third function + +if(NOT DEFINED MACHINEKIT_HAL_COMP) + get_property( + _comp_set GLOBAL + PROPERTY MACHINEKIT_HAL_COMP + SET) + if(_comp_set) + get_property(MACHINEKIT_HAL_COMP GLOBAL PROPERTY MACHINEKIT_HAL_COMP) + else() + find_program(MACHINEKIT_HAL_COMP "comp" REQUIRED) + endif() + unset(_comp_set) +endif() + +if(NOT DEFINED export_rtapi_symbols) + include(MachinekitHALSymbolVisibilityFunction) +endif() + +function(add_legacy_managed_module target_name) + set(prefix "comp") + set(noValues "") + set(singleValues "OUTPUT_DIRECTORY" "SOURCE" "INSTALL_DIRECTORY" + "CPACK_OUTPUT_GROUP") + set(multiValues "LINK_LIBRARIES" "CPACK_DEPENDENCY_COMPONENTS") + + cmake_parse_arguments(PARSE_ARGV 1 "${prefix}" "${noValues}" + "${singleValues}" "${multiValues}") + + if(${prefix}_KEYWORDS_MISSING_VALUES) + message( + FATAL_ERROR + "All keyword arguments need values! (${${prefix}_KEYWORDS_MISSING_VALUES})" + ) + endif() + + list(APPEND all_key_arguments "${noValues}" "${singleValues}" + "${multiValues}") + if(NOT target_name OR ${target_name} IN_LIST all_key_arguments) + message(FATAL_ERROR "Target name has to be specified!") + endif() + + if(NOT ${prefix}_SOURCE) + message( + FATAL_ERROR + "Target source file has to be specified via the SOURCE named argument!") + endif() + + cmake_path(ABSOLUTE_PATH ${prefix}_SOURCE NORMALIZE OUTPUT_VARIABLE + source_file) + cmake_path(GET source_file EXTENSION source_file_extension) + cmake_path(GET source_file FILENAME source_file_filename) + cmake_path(GET source_file STEM source_file_stem) + + if(NOT source_file_extension STREQUAL ".comp") + message( + FATAL_ERROR "File passed as SOURCE has to have the '.comp' extension!") + endif() + + set(output_build_directory + "${CMAKE_CURRENT_BINARY_DIR}/$/src/${target_name}") + set(preprocessed_c_source_file + "${output_build_directory}/${source_file_stem}.c") + + add_custom_command( + OUTPUT "${preprocessed_c_source_file}" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${output_build_directory}" + COMMAND ${CMAKE_COMMAND} "-E" "env" "${MACHINEKIT_HAL_COMP}" "--preprocess" + "--outfile" "${preprocessed_c_source_file}" "${source_file}" + MAIN_DEPENDENCY "${source_file}" + COMMENT "Preprocessing legacy module ${source_file_filename} to C file") + + add_library(${target_name} MODULE) + target_sources(${target_name} PRIVATE ${preprocessed_c_source_file}) + + target_link_libraries(${target_name} PRIVATE hal_api runtime_api) + + if(${prefix}_LINK_LIBRARIES) + target_link_libraries(${target_name} PRIVATE ${${prefix}_LINK_LIBRARIES}) + endif() + + export_rtapi_symbols(TARGET ${target_name}) + + target_compile_definitions(${target_name} PRIVATE "RTAPI") + + set_target_properties( + ${target_name} PROPERTIES OUTPUT_NAME "${source_file_stem}" PREFIX "mod") + + if(${prefix}_OUTPUT_DIRECTORY) + cmake_path(IS_ABSOLUTE ${prefix}_OUTPUT_DIRECTORY + output_directory_is_absolute) + if(NOT output_directory_is_absolute) + message(FATAL_ERROR "Path passed as OUTPUT_DIRECTORY must be absolute!") + endif() + + set_target_properties( + ${target_name} PROPERTIES LIBRARY_OUTPUT_DIRECTORY + "${${prefix}_OUTPUT_DIRECTORY}") + endif() + + if(${prefix}_INSTALL_DIRECTORY) + install( + TARGETS ${target_name} + LIBRARY + DESTINATION "${${prefix}_INSTALL_DIRECTORY}" + COMPONENT MachinekitHAL_Managed_Module_${target_name}_Legacy_Components) + endif() + + if(${prefix}_CPACK_OUTPUT_GROUP) + if(${prefix}_CPACK_DEPENDENCY_COMPONENTS) + cpack_add_component( + MachinekitHAL_Managed_Module_${target_name}_Legacy_Components + GROUP MachinekitHAL_Managed_Module_${target_name} + DEPENDS "${${prefix}_CPACK_DEPENDENCY_COMPONENTS}") + else() + cpack_add_component( + MachinekitHAL_Managed_Module_${target_name}_Legacy_Components + GROUP MachinekitHAL_Managed_Module_${target_name}) + endif() + + # Specification of artifacts placement in package tree + cpack_add_component_group(MachinekitHAL_Managed_Module_${target_name} + PARENT_GROUP ${${prefix}_CPACK_OUTPUT_GROUP}) + endif() +endfunction() + +function(add_legacy_unmanaged_module target_name) + set(prefix "comp") + set(noValues "") + set(singleValues "OUTPUT_DIRECTORY" "SOURCE" "INSTALL_DIRECTORY" + "CPACK_OUTPUT_GROUP") + set(multiValues "LINK_LIBRARIES" "CPACK_DEPENDENCY_COMPONENTS") + + cmake_parse_arguments(PARSE_ARGV 1 "${prefix}" "${noValues}" + "${singleValues}" "${multiValues}") + + if(${prefix}_KEYWORDS_MISSING_VALUES) + message( + FATAL_ERROR + "All keyword arguments need values! (${${prefix}_KEYWORDS_MISSING_VALUES})" + ) + endif() + + list(APPEND all_key_arguments "${noValues}" "${singleValues}" + "${multiValues}") + if(NOT target_name OR ${target_name} IN_LIST all_key_arguments) + message(FATAL_ERROR "Target name has to be specified!") + endif() + + if(NOT ${prefix}_SOURCE) + message( + FATAL_ERROR + "Target source file has to be specified via the SOURCE named argument!") + endif() + + cmake_path(ABSOLUTE_PATH ${prefix}_SOURCE NORMALIZE OUTPUT_VARIABLE + source_file) + cmake_path(GET source_file EXTENSION source_file_extension) + cmake_path(GET source_file FILENAME source_file_filename) + cmake_path(GET source_file STEM source_file_stem) + + if(NOT source_file_extension STREQUAL ".comp") + message( + FATAL_ERROR "File passed as SOURCE has to have the '.comp' extension!") + endif() + + set(output_build_directory + "${CMAKE_CURRENT_BINARY_DIR}/$/src/${target_name}") + set(preprocessed_c_source_file + "${output_build_directory}/${source_file_stem}.c") + + add_custom_command( + OUTPUT "${preprocessed_c_source_file}" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${output_build_directory}" + COMMAND ${CMAKE_COMMAND} "-E" "env" "${MACHINEKIT_HAL_COMP}" "--preprocess" + "--outfile" "${preprocessed_c_source_file}" "${source_file}" + MAIN_DEPENDENCY "${source_file}" + COMMENT "Preprocessing legacy module ${source_file_filename} to C file") + + add_executable(${target_name}) + target_sources(${target_name} PRIVATE ${preprocessed_c_source_file}) + + target_link_libraries(${target_name} PRIVATE hal runtime) + + if(${prefix}_LINK_LIBRARIES) + target_link_libraries(${target_name} PRIVATE ${${prefix}_LINK_LIBRARIES}) + endif() + + target_compile_definitions(${target_name} PRIVATE "ULAPI") + + if(${prefix}_OUTPUT_DIRECTORY) + cmake_path(IS_ABSOLUTE ${prefix}_OUTPUT_DIRECTORY + output_directory_is_absolute) + if(NOT output_directory_is_absolute) + message(FATAL_ERROR "Path passed as OUTPUT_DIRECTORY must be absolute!") + endif() + + set_target_properties( + ${target_name} PROPERTIES LIBRARY_OUTPUT_DIRECTORY + "${${prefix}_OUTPUT_DIRECTORY}") + endif() + + if(${prefix}_INSTALL_DIRECTORY) + install( + TARGETS ${target_name} + RUNTIME + DESTINATION "${${prefix}_INSTALL_DIRECTORY}" + COMPONENT + MachinekitHAL_Unmanaged_Module_${target_name}_Legacy_Components) + endif() + + if(${prefix}_CPACK_OUTPUT_GROUP) + if(${prefix}_CPACK_DEPENDENCY_COMPONENTS) + cpack_add_component( + MachinekitHAL_Unmanaged_Module_${target_name}_Legacy_Components + GROUP MachinekitHAL_Unmanaged_Module_${target_name} + DEPENDS "${${prefix}_CPACK_DEPENDENCY_COMPONENTS}") + else() + cpack_add_component( + MachinekitHAL_Unmanaged_Module_${target_name}_Legacy_Components + GROUP MachinekitHAL_Unmanaged_Module_${target_name}) + endif() + + # Specification of artifacts placement in package tree + cpack_add_component_group(MachinekitHAL_Unmanaged_Module_${target_name} + PARENT_GROUP ${${prefix}_CPACK_OUTPUT_GROUP}) + endif() +endfunction() diff --git a/src/executables/comp/src/__init__.py b/src/executables/comp/src/__init__.py index 63ea37be37..52a083fcb3 100644 --- a/src/executables/comp/src/__init__.py +++ b/src/executables/comp/src/__init__.py @@ -1,4 +1,4 @@ -from .bitfile import main +from .comp import main def cli(): diff --git a/src/executables/comp/src/comp.g b/src/executables/comp/src/comp.g index 55a02e630e..eec1e43eee 100644 --- a/src/executables/comp/src/comp.g +++ b/src/executables/comp/src/comp.g @@ -99,6 +99,8 @@ parser Hal: %% import os, sys, tempfile, shutil, getopt, time, stat +import pathlib +import subprocess BASE = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), "..")) sys.path.insert(0, os.path.join(BASE, "lib", "python")) @@ -633,68 +635,194 @@ def epilogue(f): else: f.write("static int __comp_get_data_size(void) { return 0; }\n") -INSTALL, COMPILE, PREPROCESS, DOCUMENT, INSTALLDOC, VIEWDOC, MODINC = range(7) -modename = ("install", "compile", "preprocess", "document", "installdoc", "viewdoc", "print-modinc") - -modinc = None -def find_modinc(): - global modinc - if modinc: return modinc - d = os.path.abspath(os.path.dirname(os.path.dirname(sys.argv[0]))) - for e in ['src', 'etc/machinekit', '/etc/machinekit', 'share/machinekit']: - e = os.path.join(d, e, 'Makefile.modinc') - if os.path.exists(e): - modinc = e - return e - raise SystemExit("Error: Unable to locate Makefile.modinc") - -def build_usr(tempdir, filename, mode, origfilename): - binname = os.path.basename(os.path.splitext(filename)[0]) - - makefile = os.path.join(tempdir, "Makefile") - f = open(makefile, "w") - f.write("%s: %s\n" % (binname, filename)) - f.write("\t$(CC) $(EXTRA_CFLAGS) -URTAPI -U__MODULE__ -DULAPI -Os %s -o $@ $< -Wl,-rpath,$(LIBDIR) -L$(LIBDIR) -lhal -lhalulapi %s\n" % ( - options.get("extra_compile_args", ""), - options.get("extra_link_args", ""))) - f.write("include %s\n" % find_modinc()) - f.write("EXTRA_CFLAGS += -I%s\n" % os.path.abspath(os.path.dirname(origfilename))) - f.write("EXTRA_CFLAGS += -I%s\n" % os.path.abspath('.')) - f.close() - result = os.system("cd %s && make -S %s" % (tempdir, binname)) - if result != 0: - raise SystemExit(os.WEXITSTATUS(result) or 1) - output = os.path.join(tempdir, binname) +INSTALL, COMPILE, PREPROCESS, DOCUMENT, INSTALLDOC, VIEWDOC = range(6) +modename = ("install", "compile", "preprocess", "document", "installdoc", "viewdoc") + +cmake_recipe_base_unmanaged = """ +cmake_minimum_required(VERSION 3.22) + +set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE) +set(CMAKE_EXPORT_LINK_COMMANDS TRUE) +set(CMAKE_DISABLE_SOURCE_CHANGES TRUE) +set(CMAKE_DISABLE_IN_SOURCE_BUILD TRUE) + +project( + Machinekit-HAL{module_project_name}Module + VERSION 0.5 + DESCRIPTION "HAL module {module_project_name} for Machinekit-HAL." + HOMEPAGE_URL "https://machinekit.io" + LANGUAGES C) + +find_package( + Machinekit-HAL + COMPONENTS Unmanaged-HAL + REQUIRED) + +add_executable({module_name}) +target_sources({module_name} PRIVATE {c_source_file}) + +target_link_libraries({module_name} + PRIVATE Machinekit::HAL::hal) + +target_compile_definitions({module_name} PRIVATE "ULAPI") + +set_target_properties( + {module_name} + PROPERTIES OUTPUT_NAME "{module_name}" + RUNTIME_OUTPUT_DIRECTORY "{build_output_directory}") + +""" +cmake_recipe_install_unmanaged = """ +install(TARGETS {module_name} RUNTIME DESTINATION "{install_directory}") +""" + +def build_usr(tempdir, filename, mode, origfilename, installdir): + if isinstance(filename, str): + filename = pathlib.Path(filename) + if isinstance(tempdir, str): + tempdir = pathlib.Path(tempdir) + if isinstance(installdir, str): + installdir = pathlib.Path(installdir) + + cmake_recipe = cmake_recipe_base_unmanaged if mode == INSTALL: - shutil.copy(output, os.path.join(BASE, "bin", binname)) - elif mode == COMPILE: - shutil.copy(output, os.path.join(os.path.dirname(origfilename),binname)) - -def build_rt(tempdir, filename, mode, origfilename): - objname = os.path.basename(os.path.splitext(filename)[0] + ".o") - makefile = os.path.join(tempdir, "Makefile") - f = open(makefile, "w") - f.write("obj-m += %s\n" % objname) - f.write("include %s\n" % find_modinc()) - f.write("EXTRA_CFLAGS += -I%s\n" % os.path.abspath(os.path.dirname(origfilename))) - f.write("EXTRA_CFLAGS += -I%s\n" % os.path.abspath('.')) - f.write("EXTRA_CFLAGS += -DRTAPI -L$(LIBDIR) -lhal") - f.close() + cmake_recipe += cmake_recipe_install_unmanaged + else: + installdir = tempdir + + module_name = filename.stem + cmakelists_file = tempdir / "CMakeLists.txt" + cmake_builddir = tempdir / "build" + + cmakelists = cmake_recipe.format( + module_name=module_name.lower(), + module_project_name=module_name.capitalize(), + c_source_file=filename, + build_output_directory=tempdir, + install_directory=installdir) + + with open(cmakelists_file, "w") as file: + file.write(cmakelists) + + _config = os.environ.get("MACHINEKIT_HAL_BUILD_CONFIG", "") + if _config: + _config = f"--config {_config}" + # Generator should be taken from the CMAKE_GENERATOR evironment variable + # by CMake automatically + + cmake_generate = f"cmake -S {tempdir} -B {cmake_builddir}" + cmake_build = f"cmake --build {cmake_builddir} {_config}" + cmake_install = f"cmake --install {cmake_builddir} {_config}" + + + _generate = subprocess.run(cmake_generate, shell=True, check=True) + _build = subprocess.run(cmake_build, shell=True, check=True) + + if mode == INSTALL: + _install = subprocess.run(cmake_install, shell=True, check=True) + + if mode == COMPILE: + # Copying out with the build RPATH + # TODO: Does this really make sense? + for sofile in tempdir.glob('*.so'): + shutil.copy(sofile, pathlib.Path.cwd() / sofile.name) + #else: + # raise SystemExit("Error: Unable to copy module from temporary directory") + +cmake_recipe_base_managed = """ +cmake_minimum_required(VERSION 3.22) + +set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE) +set(CMAKE_EXPORT_LINK_COMMANDS TRUE) +set(CMAKE_DISABLE_SOURCE_CHANGES TRUE) +set(CMAKE_DISABLE_IN_SOURCE_BUILD TRUE) + +project( + Machinekit-HAL{module_project_name}Module + VERSION 0.5 + DESCRIPTION "HAL module {module_project_name} for Machinekit-HAL." + HOMEPAGE_URL "https://machinekit.io" + LANGUAGES C) + +find_package( + Machinekit-HAL + COMPONENTS Managed-Runtime + REQUIRED) + +add_library({module_name} MODULE) +target_sources({module_name} PRIVATE {c_source_file}) + +target_link_libraries({module_name} + PRIVATE Machinekit::HAL::hal_api + Machinekit::HAL::runtime_api) + +export_rtapi_symbols(TARGET {module_name}) + +target_compile_definitions({module_name} PRIVATE "RTAPI") + +set_target_properties( + {module_name} + PROPERTIES OUTPUT_NAME "{module_name}" + PREFIX "mod" + LIBRARY_OUTPUT_DIRECTORY "{build_output_directory}") + +""" +cmake_recipe_install_managed = """ +install(TARGETS {module_name} LIBRARY DESTINATION "{install_directory}") +""" + +def build_rt(tempdir, filename, mode, origfilename, installdir): + if isinstance(filename, str): + filename = pathlib.Path(filename) + if isinstance(tempdir, str): + tempdir = pathlib.Path(tempdir) + if isinstance(installdir, str): + installdir = pathlib.Path(installdir) + + cmake_recipe = cmake_recipe_base_managed if mode == INSTALL: - target = "modules install" + cmake_recipe += cmake_recipe_install_managed else: - target = "modules" - result = os.system("cd %s && make -S %s" % (tempdir, target)) - if result != 0: - raise SystemExit(os.WEXITSTATUS(result) or 1) + installdir = tempdir + + module_name = filename.stem + cmakelists_file = tempdir / "CMakeLists.txt" + cmake_builddir = tempdir / "build" + + cmakelists = cmake_recipe.format( + module_name=module_name.lower(), + module_project_name=module_name.capitalize(), + c_source_file=filename, + build_output_directory=tempdir, + install_directory=installdir) + + with open(cmakelists_file, "w") as file: + file.write(cmakelists) + + _config = os.environ.get("MACHINEKIT_HAL_BUILD_CONFIG", "") + if _config: + _config = f"--config {_config}" + # Generator should be taken from the CMAKE_GENERATOR evironment variable + # by CMake automatically + + cmake_generate = f"cmake -S {tempdir} -B {cmake_builddir}" + cmake_build = f"cmake --build {cmake_builddir} {_config}" + cmake_install = f"cmake --install {cmake_builddir} {_config}" + + + _generate = subprocess.run(cmake_generate, shell=True, check=True) + _build = subprocess.run(cmake_build, shell=True, check=True) + + if mode == INSTALL: + _install = subprocess.run(cmake_install, shell=True, check=True) + if mode == COMPILE: - for extension in ".ko", ".so", ".o": - kobjname = os.path.splitext(filename)[0] + extension - if os.path.exists(kobjname): - shutil.copy(kobjname, os.path.basename(kobjname)) - break - else: - raise SystemExit("Error: Unable to copy module from temporary directory") + # Copying out with the build RPATH + # TODO: Does this really make sense? + for sofile in tempdir.glob('*.so'): + shutil.copy(sofile, pathlib.Path.cwd() / sofile.name) + #else: + # raise SystemExit("Error: Unable to copy module from temporary directory") ############################################################ @@ -998,10 +1126,11 @@ def process(filename, mode, outfilename): f.close() if mode != PREPROCESS: + installdir = install_path if install_path is not None else tempdir if options.get("userspace"): - build_usr(tempdir, outfilename, mode, filename) + build_usr(tempdir, outfilename, mode, filename, installdir) else: - build_rt(tempdir, outfilename, mode, filename) + build_rt(tempdir, outfilename, mode, filename, installdir) finally: shutil.rmtree(tempdir) @@ -1019,8 +1148,12 @@ Usage: """) % {'name': os.path.basename(sys.argv[0])} raise SystemExit(exitval) +# TODO: This is hacky and ugly, rework it! +install_path = None + def main(): global require_license + global install_path require_license = True mode = PREPROCESS outfile = None @@ -1028,10 +1161,10 @@ def main(): userspace = False try: - opts, args = getopt.getopt(sys.argv[1:], "f:luicpdjvo:h?", + opts, args = getopt.getopt(sys.argv[1:], "f:lui:cpdjvo:h?", ['frontmatter=', 'install', 'compile', 'preprocess', 'outfile=', 'document', 'help', 'userspace', 'install-doc', - 'view-doc', 'require-license', 'print-modinc']) + 'view-doc', 'require-license']) except getopt.GetoptError: usage(1) @@ -1040,6 +1173,9 @@ def main(): userspace = True if k in ("-i", "--install"): mode = INSTALL + if len(args) != 1: + raise SystemExit("Error: Install path must be a single directory") + install_path = v if k in ("-c", "--compile"): mode = COMPILE if k in ("-p", "--preprocess"): @@ -1050,8 +1186,6 @@ def main(): mode = INSTALLDOC if k in ("-v", "--view-doc"): mode = VIEWDOC - if k in ("--print-modinc",): - mode = MODINC if k in ("-l", "--require-license"): require_license = True if k in ("-o", "--outfile"): @@ -1066,12 +1200,12 @@ def main(): if outfile and mode != PREPROCESS and mode != DOCUMENT: raise SystemExit("Error: Can only specify -o when preprocessing or documenting") - if mode == MODINC: - if args: - raise SystemExit( - "Error: Can not specify input files when using --print-modinc") - print (find_modinc()) - return 0 + #if mode == MODINC: + # if args: + # raise SystemExit( + # "Error: Can not specify input files when using --print-modinc") + # print (find_modinc()) + # return 0 for f in args: try: @@ -1108,12 +1242,13 @@ def main(): elif f.endswith(".c") and mode != PREPROCESS: initialize() tempdir = tempfile.mkdtemp() + installdir = install_path if install_path is not None else tempdir try: shutil.copy(f, tempdir) if userspace: - build_usr(tempdir, os.path.join(tempdir, os.path.basename(f)), mode, f) + build_usr(tempdir, os.path.join(tempdir, os.path.basename(f)), mode, f, installdir) else: - build_rt(tempdir, os.path.join(tempdir, os.path.basename(f)), mode, f) + build_rt(tempdir, os.path.join(tempdir, os.path.basename(f)), mode, f, installdir) finally: shutil.rmtree(tempdir) else: diff --git a/src/executables/instcomp/CMakeLists.txt b/src/executables/instcomp/CMakeLists.txt index 193ea3abdd..acc560e882 100644 --- a/src/executables/instcomp/CMakeLists.txt +++ b/src/executables/instcomp/CMakeLists.txt @@ -37,6 +37,16 @@ if(BUILD_PYTHON_DISTRIBUTIONS) find_program(PYPROJECT_BUILD "pyproject-build" REQUIRED) include(PEP427Installer) + define_property( + GLOBAL + PROPERTY MACHINEKIT_HAL_INSTCOMP + BRIEF_DOCS "Path to the Instcomp executable" + FULL_DOCS + [[ + Machinekit-HAL buildsystem (internal only) global property to specify the Instcomp + executable (which should live in a special Python virtual environment). + ]]) + set(PACKAGE_NAME "instcomp") set(DISTRIBUTION_NAME "${MACHINEKIT_HAL_PACKAGE_PREFIX}_${PACKAGE_NAME}") @@ -71,49 +81,88 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(src/pyproject.toml.in ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - instcomp_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/instcomp.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + ${INSTCOMP_SOURCE} + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/instcomp.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + ${INSTCOMP_SOURCE} + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") - - set(MACHINEKIT_HAL_INSTCOMP_CMAKE_MODULE - "${CMAKE_CURRENT_SOURCE_DIR}/src/MachinekitHALInstcomp.cmake") - set(MACHINEKIT_HAL_INSTCOMP_INTERNAL - "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/instcomp.py" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + ${INSTCOMP_SOURCE} + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" ) add_custom_target( - instcomp_executable ALL + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + ${INSTCOMP_SOURCE} + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_instcomp_executable.stamp + DEPENDS ${DISTRIBUTION_NAME}_wheel_distribution COMMAND Python::Interpreter "-m" "venv" "${CMAKE_CURRENT_BINARY_DIR}/venv_instcomp" COMMAND ${CMAKE_COMMAND} "-E" "env" "${CMAKE_CURRENT_BINARY_DIR}/venv_instcomp/bin/pip" "install" - "${OUTPUT_INDEX}/*.whl" + "--force-reinstall" "${OUTPUT_INDEX}/*.whl" COMMENT "Creating virtual environment for the 'instcomp' tool") - add_dependencies(instcomp_executable instcomp_distribution) + add_custom_target( + instcomp_executable ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_instcomp_executable.stamp + COMMENT "Building the virtual environment for the 'instcomp' tool") - set(MACHINEKIT_HAL_INSTCOMP_CMAKE_MODULE - "${CMAKE_CURRENT_SOURCE_DIR}/src/MachinekitHALInstcomp.cmake") - set(MACHINEKIT_HAL_INSTCOMP_INTERNAL - "${CMAKE_CURRENT_BINARY_DIR}/venv_instcomp/bin/instcomp") + add_dependencies(instcomp_executable + ${DISTRIBUTION_NAME}_wheel_distribution) configure_file( - src/MachinekitHALInstcompInternal.cmake.in - cmake_module/MachinekitHALInstcomp.cmake @ONLY + ${CMAKE_CURRENT_SOURCE_DIR}/src/MachinekitHALInstcompFunction.cmake + ${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALInstcompFunction.cmake + @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) set_property( - GLOBAL APPEND PROPERTY MACHINEKIT_HAL_MODULE_PATH - "${CMAKE_CURRENT_BINARY_DIR}/cmake_module") + GLOBAL PROPERTY MACHINEKIT_HAL_INSTCOMP + "${CMAKE_CURRENT_BINARY_DIR}/venv_instcomp/bin/instcomp") install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Executable_Instcomp_Python_Packages) diff --git a/src/executables/instcomp/src/MachinekitHALInstcomp.cmake b/src/executables/instcomp/src/MachinekitHALInstcompFunction.cmake similarity index 91% rename from src/executables/instcomp/src/MachinekitHALInstcomp.cmake rename to src/executables/instcomp/src/MachinekitHALInstcompFunction.cmake index cdde62f889..956bdf9232 100644 --- a/src/executables/instcomp/src/MachinekitHALInstcomp.cmake +++ b/src/executables/instcomp/src/MachinekitHALInstcompFunction.cmake @@ -1,8 +1,8 @@ # ~~~ # #################################################################### -# Description: MachinekitHALInstcomp.cmake +# Description: MachinekitHALInstcompFunction.cmake # -# This file, 'MachinekitHALInstcomp.cmake', implements +# This file, 'MachinekitHALInstcompFunction.cmake', implements # CMake module to build Machinekit-HAL managed HAL modules # from the '.icomp' template files # @@ -26,11 +26,21 @@ # ~~~ if(NOT DEFINED MACHINEKIT_HAL_INSTCOMP) - find_program(MACHINEKIT_HAL_INSTCOMP "instcomp" REQUIRED) + get_property( + _instcomp_set GLOBAL + PROPERTY MACHINEKIT_HAL_INSTCOMP + SET) + if(_instcomp_set) + get_property(MACHINEKIT_HAL_INSTCOMP GLOBAL + PROPERTY MACHINEKIT_HAL_INSTCOMP) + else() + find_program(MACHINEKIT_HAL_INSTCOMP "instcomp" REQUIRED) + endif() + unset(_instcomp_set) endif() if(NOT DEFINED export_rtapi_symbols) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) endif() function(add_instantiatable_module target_name) diff --git a/src/executables/instcomp/src/instcomp.g b/src/executables/instcomp/src/instcomp.g index 27d637e58d..352afa97b0 100644 --- a/src/executables/instcomp/src/instcomp.g +++ b/src/executables/instcomp/src/instcomp.g @@ -114,6 +114,8 @@ parser Hal: %% import os, sys, tempfile, shutil, getopt, time, re, stat +import pathlib +import subprocess BASE = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), "..")) sys.path.insert(0, os.path.join(BASE, "lib", "python")) @@ -1053,45 +1055,103 @@ def prologue(f): def epilogue(f): f.write("\n") -INSTALL, COMPILE, PREPROCESS, DOCUMENT, INSTALLDOC, VIEWDOC, MODINC = range(7) -modename = ("install", "compile", "preprocess", "document", "installdoc", "viewdoc", "print-modinc") - -modinc = None -def find_modinc(): - global modinc - if modinc: return modinc - d = os.path.abspath(os.path.dirname(os.path.dirname(sys.argv[0]))) - for e in ['src', 'etc/machinekit', '/etc/machinekit', 'share/machinekit']: - e = os.path.join(d, e, 'Makefile.modinc') - if os.path.exists(e): - modinc = e - return e - raise SystemExit("Error: Unable to locate Makefile.modinc") - -def build_rt(tempdir, filename, mode, origfilename): - objname = os.path.basename(os.path.splitext(filename)[0] + ".o") - makefile = os.path.join(tempdir, "Makefile") - f = open(makefile, "w") - f.write("obj-m += %s\n" % objname) - f.write("include %s\n" % find_modinc()) - f.write("EXTRA_CFLAGS += -I%s\n" % os.path.abspath(os.path.dirname(origfilename))) - f.write("EXTRA_CFLAGS += -I%s\n" % os.path.abspath('.')) - f.close() +INSTALL, COMPILE, PREPROCESS, DOCUMENT, INSTALLDOC, VIEWDOC = range(6) +modename = ("install", "compile", "preprocess", "document", "installdoc", "viewdoc") + +cmake_recipe_base = """ +cmake_minimum_required(VERSION 3.22) + +set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE) +set(CMAKE_EXPORT_LINK_COMMANDS TRUE) +set(CMAKE_DISABLE_SOURCE_CHANGES TRUE) +set(CMAKE_DISABLE_IN_SOURCE_BUILD TRUE) + +project( + Machinekit-HAL{module_project_name}Module + VERSION 0.5 + DESCRIPTION "HAL module {module_project_name} for Machinekit-HAL." + HOMEPAGE_URL "https://machinekit.io" + LANGUAGES C) + +find_package( + Machinekit-HAL + COMPONENTS Managed-Runtime + REQUIRED) + +add_library({module_name} MODULE) +target_sources({module_name} PRIVATE {c_source_file}) + +target_link_libraries({module_name} + PRIVATE Machinekit::HAL::hal_api + Machinekit::HAL::runtime_api) + +export_rtapi_symbols(TARGET {module_name}) + +target_compile_definitions({module_name} PRIVATE "RTAPI") + +set_target_properties( + {module_name} + PROPERTIES OUTPUT_NAME "{module_name}" + PREFIX "mod" + LIBRARY_OUTPUT_DIRECTORY "{build_output_directory}") + +""" +cmake_recipe_install = """ +install(TARGETS {module_name} LIBRARY DESTINATION "{install_directory}") +""" + +def build_rt(tempdir, filename, mode, origfilename, installdir): + if isinstance(filename, str): + filename = pathlib.Path(filename) + if isinstance(tempdir, str): + tempdir = pathlib.Path(tempdir) + if isinstance(installdir, str): + installdir = pathlib.Path(installdir) + + cmake_recipe = cmake_recipe_base if mode == INSTALL: - target = "modules install" + cmake_recipe += cmake_recipe_install else: - target = "modules" - result = os.system("cd %s && make -S %s" % (tempdir, target)) - if result != 0: - raise SystemExit(os.WEXITSTATUS(result) or 1) + installdir = tempdir + + module_name = filename.stem + cmakelists_file = tempdir / "CMakeLists.txt" + cmake_builddir = tempdir / "build" + + cmakelists = cmake_recipe.format( + module_name=module_name.lower(), + module_project_name=module_name.capitalize(), + c_source_file=filename, + build_output_directory=tempdir, + install_directory=installdir) + + with open(cmakelists_file, "w") as file: + file.write(cmakelists) + + _config = os.environ.get("MACHINEKIT_HAL_BUILD_CONFIG", "") + if _config: + _config = f"--config {_config}" + # Generator should be taken from the CMAKE_GENERATOR evironment variable + # by CMake automatically + + cmake_generate = f"cmake -S {tempdir} -B {cmake_builddir}" + cmake_build = f"cmake --build {cmake_builddir} {_config}" + cmake_install = f"cmake --install {cmake_builddir} {_config}" + + + _generate = subprocess.run(cmake_generate, shell=True, check=True) + _build = subprocess.run(cmake_build, shell=True, check=True) + + if mode == INSTALL: + _install = subprocess.run(cmake_install, shell=True, check=True) + if mode == COMPILE: - for extension in ".ko", ".so", ".o": - kobjname = os.path.splitext(filename)[0] + extension - if os.path.exists(kobjname): - shutil.copy(kobjname, os.path.basename(kobjname)) - break - else: - raise SystemExit("Error: Unable to copy module from temporary directory") + # Copying out with the build RPATH + # TODO: Does this really make sense? + for sofile in tempdir.glob('*.so'): + shutil.copy(sofile, pathlib.Path.cwd() / sofile.name) + #else: + # raise SystemExit("Error: Unable to copy module from temporary directory") ###################### docs man pages etc ########################################### @@ -1416,7 +1476,7 @@ def process(filename, mode, outfilename): f.close() if mode != PREPROCESS: - build_rt(tempdir, outfilename, mode, filename) + build_rt(tempdir, outfilename, mode, filename, tempdir) finally: shutil.rmtree(tempdir) @@ -1434,24 +1494,31 @@ Usage: ##################################### main ################################## +# TODO: This is hacky and ugly, rework it! +install_path = None + def main(): global require_license + global install_path require_license = True mode = PREPROCESS outfile = None frontmatter = [] userspace = False try: - opts, args = getopt.getopt(sys.argv[1:], "f:lijcpdo:h?", - ['frontmatter=', 'install', 'compile', 'preprocess', 'outfile=', + opts, args = getopt.getopt(sys.argv[1:], "f:li:jcpdo:h?", + ['frontmatter=', 'install=', 'compile', 'preprocess', 'outfile=', 'document', 'help', 'userspace', 'install-doc', - 'view-doc', 'require-license', 'print-modinc']) + 'view-doc', 'require-license']) except getopt.GetoptError: usage(1) for k, v in opts: if k in ("-i", "--install"): mode = INSTALL + if len(args) != 1: + raise SystemExit("Error: Install path must be a single directory") + install_path = v if k in ("-c", "--compile"): mode = COMPILE if k in ("-p", "--preprocess"): @@ -1462,8 +1529,6 @@ def main(): mode = INSTALLDOC if k in ("-v", "--view-doc"): mode = VIEWDOC - if k in ("--print-modinc",): - mode = MODINC if k in ("-l", "--require-license"): require_license = True if k in ("-o", "--outfile"): @@ -1478,13 +1543,13 @@ def main(): if outfile and mode != PREPROCESS and mode != DOCUMENT: raise SystemExit("Error: Can only specify -o when preprocessing or documenting") - if mode == MODINC: - if args: - raise SystemExit( - "Error: Can not specify input files when using --print-modinc" - ) - print(find_modinc()) - return 0 + #if mode == MODINC: + # if args: + # raise SystemExit( + # "Error: Can not specify input files when using --print-modinc" + # ) + # print(find_modinc()) + # return 0 for f in args: try: @@ -1521,9 +1586,10 @@ def main(): elif f.endswith(".c") and mode != PREPROCESS: initialize() tempdir = tempfile.mkdtemp() + installdir = install_path if install_path is not None else tempdir try: shutil.copy(f, tempdir) - build_rt(tempdir, os.path.join(tempdir, os.path.basename(f)), mode, f) + build_rt(tempdir, os.path.join(tempdir, os.path.basename(f)), mode, f, installdir) finally: shutil.rmtree(tempdir) else: diff --git a/src/executables/mklauncher/CMakeLists.txt b/src/executables/mklauncher/CMakeLists.txt index a02e19ff4d..5d7a331d1c 100644 --- a/src/executables/mklauncher/CMakeLists.txt +++ b/src/executables/mklauncher/CMakeLists.txt @@ -67,17 +67,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) ${DISTRIBUTION_NORMALIZED_NAME}/test/test_mklauncher.py @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}//${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}//${PACKAGE_NAME}/mklauncher.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}//${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}//${PACKAGE_NAME}/mklauncher.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Executable_MKLauncher_Python_Packages) diff --git a/src/executables/mkwrapper/CMakeLists.txt b/src/executables/mkwrapper/CMakeLists.txt index 51e45d30c1..860387e17a 100644 --- a/src/executables/mkwrapper/CMakeLists.txt +++ b/src/executables/mkwrapper/CMakeLists.txt @@ -62,17 +62,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/mkwrapper.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/mkwrapper.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Executable_MKWrapper_Python_Packages) diff --git a/src/libraries/CMakeLists.txt b/src/libraries/CMakeLists.txt index 8b640bb28a..b43d3b35ef 100644 --- a/src/libraries/CMakeLists.txt +++ b/src/libraries/CMakeLists.txt @@ -35,6 +35,7 @@ add_subdirectory(cycompat) add_subdirectory(cyhal) add_subdirectory(cyruntime) add_subdirectory(cyshmcommon) +add_subdirectory(export_package) add_subdirectory(hal) add_subdirectory(hal_command) add_subdirectory(halfile) diff --git a/src/libraries/ads7828/CMakeLists.txt b/src/libraries/ads7828/CMakeLists.txt index 639ed9d609..cac8f71cb4 100644 --- a/src/libraries/ads7828/CMakeLists.txt +++ b/src/libraries/ads7828/CMakeLists.txt @@ -62,17 +62,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/ADS7828.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/ADS7828.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Library_ADS7828_Python_Packages) diff --git a/src/libraries/cycompat/CMakeLists.txt b/src/libraries/cycompat/CMakeLists.txt index 71394e6ce5..e196bd1cad 100644 --- a/src/libraries/cycompat/CMakeLists.txt +++ b/src/libraries/cycompat/CMakeLists.txt @@ -23,3 +23,156 @@ # # ##################################################################### # ~~~ + +if(BUILD_PYTHON_DISTRIBUTIONS) + option(BUILD_CYCOMPAT_MODULE_LIBRARY + "Built the CyCompat Python Cython extension library distribution." + TRUE) + + if(BUILD_CYCOMPAT_MODULE_LIBRARY) + find_program(PYPROJECT_BUILD "pyproject-build" REQUIRED) + find_program(CYTHON "cython" "cython3" REQUIRED) + include(PEP427Installer) + + set(PACKAGE_NAME "cycompat") + + set(DISTRIBUTION_NAME "${MACHINEKIT_HAL_PACKAGE_PREFIX}_${PACKAGE_NAME}") + string(REGEX REPLACE "[._~ ]" "-" DISTRIBUTION_NORMALIZED_NAME + ${DISTRIBUTION_NAME}) + + # Files representing the Python package + set(CYCOMPAT_MODULE_MAIN_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/compat.pyx) + set(PRIVATE_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/compat.pxd) + set(PYTHON_INIT ${CMAKE_CURRENT_SOURCE_DIR}/src/__init__.py) + set(PYTHON_PDM_BUILD ${CMAKE_CURRENT_SOURCE_DIR}/src/build.py) + set(CYCOMPAT_MODULE_CMAKELISTS + ${CMAKE_CURRENT_SOURCE_DIR}/src/CMakeLists.txt.in) + set(PYTHON_PYPROJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/pyproject.toml.in) + + set(OUTPUT_INDEX + ${MACHINEKIT_HAL_PYTHON_INDEX}/${DISTRIBUTION_NORMALIZED_NAME}) + + file(REMOVE_RECURSE + ${CMAKE_CURRENT_BINARY_DIR}/${DISTRIBUTION_NORMALIZED_NAME}) + configure_file( + ${PYTHON_INIT} + ${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + COPYONLY + NO_SOURCE_PERMISSIONS) + configure_file(${PYTHON_PDM_BUILD} ${PACKAGE_NAME}/build.py COPYONLY + NO_SOURCE_PERMISSIONS) + configure_file(${CYCOMPAT_MODULE_CMAKELISTS} ${PACKAGE_NAME}/CMakeLists.txt + @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) + configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY + NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) + + add_custom_command( + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/compat.c + DEPENDS ${CYCOMPAT_MODULE_MAIN_SOURCE} + ${CYCOMPAT_MODULE_DEPENDENCY_SOURCES} ${PRIVATE_HEADER_FILES} + COMMAND + ${CYTHON} "-3" "-w" "${CMAKE_CURRENT_BINARY_DIR}" "-I" + "${CMAKE_CURRENT_SOURCE_DIR}/src" "-I" + "$" "-I" + "$" "-o" + "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/compat.c" + "-t" "${CYCOMPAT_MODULE_MAIN_SOURCE}" + COMMENT + "Translating the Cython code for Python package ${DISTRIBUTION_NAME} via external tool" + ) + + if(PYTHON_PLAT_NAME) + set(_python_plat_name + "--config-setting=\"--plat-name=${PYTHON_PLAT_NAME}\"") + else() + set(_python_plat_name "") # Make sure it is empty + endif() + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/compat.c + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + # TODO: This is hackins approach to solve issue with building multiple CONFIGS: + # Each config build is separated and because the wheel build uses an isolated + # environment, the paths to executables (python, pip etc.) are stored in CMake + # cache during generation. Second (et al) builds then try to reuse the first + # generation and fails because the temporary environment from the first run no + # longer exists + # This will need a rework as it should use its own manual isolation (for Debian + # and other distros because they require it) and generally to keep the build + # files for possibility of post-mortem + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/build" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" + "MACHINEKIT_HAL_BUILD_CONFIG=$" "${PYPROJECT_BUILD}" "-w" "-o" + "${OUTPUT_INDEX}" "${_python_plat_name}" + "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/compat.c + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" + "MACHINEKIT_HAL_BUILD_CONFIG=$" "${PYPROJECT_BUILD}" "-s" "-o" + "${OUTPUT_INDEX}" "${_python_plat_name}" + "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/compat.c + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/compat.c + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) + + add_dependencies(${DISTRIBUTION_NAME}_wheel_distribution runtime + rtapi_compat) + add_dependencies(${DISTRIBUTION_NAME}_sdist_distribution runtime + rtapi_compat) + + install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT + MachinekitHAL_Library_CyCompat_Module_Python_Packages) + + cpack_add_component(MachinekitHAL_Library_CyCompat_Module_Python_Packages + GROUP MachinekitHAL_Library_CyCompat_Module) + + # Specification of artifacts placement in package tree + cpack_add_component_group( + MachinekitHAL_Library_CyCompat_Module + PARENT_GROUP MachinekitHAL_Package_Base_Python_Libraries) + endif() +endif() diff --git a/src/libraries/cycompat/src/CMakeLists.txt.in b/src/libraries/cycompat/src/CMakeLists.txt.in new file mode 100644 index 0000000000..b79112641e --- /dev/null +++ b/src/libraries/cycompat/src/CMakeLists.txt.in @@ -0,0 +1,73 @@ +# ~~~ +# #################################################################### +# Description: CMakeLists.txt +# +# This file, 'CMakeLists.txt', implements build system +# rules for Machinekit-HAL project +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +# ##################################################################### +# ~~~ + +cmake_minimum_required(VERSION 3.22) + +project( + CyCompatModule + VERSION @CMAKE_PROJECT_VERSION@ + DESCRIPTION "Python Cython extension module for Machinekit-HAL Runtime." + HOMEPAGE_URL "https://machinekit.io" + LANGUAGES C) + +set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE) +set(CMAKE_EXPORT_LINK_COMMANDS TRUE) + +set(CMAKE_C_STANDARD 11) +set(CMAKE_C_EXTENSIONS FALSE) +set(CMAKE_CXX_EXTENSIONS FALSE) +set(CMAKE_C_STANDARD_REQUIRED TRUE) + +set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) + +find_package( + Python 3.6...4.0 + COMPONENTS Development + REQUIRED) + +find_package( + Machinekit-HAL + COMPONENTS Unmanaged-Runtime + REQUIRED) + +set(SOURCE_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/src/machinekit/hal/cycompat/compat.c) + +python_add_library(cycompat MODULE WITH_SOABI ${SOURCE_FILES}) + +target_link_libraries( + cycompat PRIVATE Machinekit::HAL::runtime Machinekit::HAL::rtapi_compat) + +set_target_properties( + cycompat + PROPERTIES OUTPUT_NAME "compat") + +install( + TARGETS cycompat + LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX} + ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX} + RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_PREFIX}) diff --git a/src/libraries/cycompat/src/__init__.py b/src/libraries/cycompat/src/__init__.py index e69de29bb2..9fee358bae 100644 --- a/src/libraries/cycompat/src/__init__.py +++ b/src/libraries/cycompat/src/__init__.py @@ -0,0 +1 @@ +from .compat import * diff --git a/src/libraries/cycompat/src/build.py b/src/libraries/cycompat/src/build.py new file mode 100644 index 0000000000..2a44769903 --- /dev/null +++ b/src/libraries/cycompat/src/build.py @@ -0,0 +1,38 @@ +import pathlib +import sys +import os +import cmake_build_extension + +CMAKE_CONFIGURE_EXTENSION_OPTIONS = [] + +if "CMAKE_MODULE_PATH" in os.environ: + CMAKE_CONFIGURE_EXTENSION_OPTIONS.append( + f"-DCMAKE_MODULE_PATH={os.environ['CMAKE_MODULE_PATH']}") + +if "CMAKE_PREFIX_PATH" in os.environ: + CMAKE_CONFIGURE_EXTENSION_OPTIONS.append( + f"-DCMAKE_PREFIX_PATH={os.environ['CMAKE_PREFIX_PATH']}") + +if "CMAKE_TOOLCHAIN_FILE" in os.environ and os.environ["CMAKE_TOOLCHAIN_FILE"]: + CMAKE_CONFIGURE_EXTENSION_OPTIONS.append( + f"--toolchain={os.environ['CMAKE_TOOLCHAIN_FILE']}") + +ext_modules = [ + cmake_build_extension.CMakeExtension(name='cycompat', + install_prefix="machinekit/hal/cycompat", + source_dir=str( + pathlib.Path(__file__).absolute().parent), + cmake_build_type=os.environ.get( + "MACHINEKIT_HAL_BUILD_CONFIG", "Release"), + cmake_configure_options=[ + "-DBUILD_SHARED_LIBS:BOOL=FALSE", + ] + CMAKE_CONFIGURE_EXTENSION_OPTIONS + ) +] + +cmdclass = dict(build_ext=cmake_build_extension.BuildExtension) + + +def build(setup_kwargs, **kwargs): + setup_kwargs.update(ext_modules=ext_modules, + cmdclass=cmdclass) diff --git a/src/libraries/cycompat/src/compat.pxd b/src/libraries/cycompat/src/compat.pxd index 981ccdb2d2..9ebd1db3ef 100644 --- a/src/libraries/cycompat/src/compat.pxd +++ b/src/libraries/cycompat/src/compat.pxd @@ -1,8 +1,8 @@ # vim: sts=4 sw=4 et # cython: language_level=3 -cdef extern from "rtapi_bitops.h": +cdef extern from "runtime/rtapi_bitops.h": int RTAPI_BIT(int b) -cdef extern from "rtapi_compat.h": +cdef extern from "runtime/rtapi_compat.h": int c_get_rtapi_config "get_rtapi_config" (char *result, const char *param, int n) diff --git a/src/libraries/cycompat/src/compat.pyx b/src/libraries/cycompat/src/compat.pyx index d6560853a5..90e63b7663 100644 --- a/src/libraries/cycompat/src/compat.pyx +++ b/src/libraries/cycompat/src/compat.pyx @@ -8,5 +8,5 @@ def get_rtapi_config(param): param_b = param.encode() rc = c_get_rtapi_config(result, param_b, 1024) if rc: - raise RuntimeError(f"get_rtapiconfig({param}) failed: {rc} {strerror(-rc)}") + raise RuntimeError(f"get_rtapi_config('{param}') failed: {rc} {strerror(-rc)}") return result.decode() diff --git a/src/libraries/cycompat/src/pyproject.toml.in b/src/libraries/cycompat/src/pyproject.toml.in new file mode 100644 index 0000000000..81bf05e2ff --- /dev/null +++ b/src/libraries/cycompat/src/pyproject.toml.in @@ -0,0 +1,57 @@ +##################################################################### +# Description: pyproject.toml.in +# +# This file, 'pyproject.toml.in', is a part of Machinekit-HAL +# buildsystem and specifies metadata for a Python distribution. +# This is a template from which is the real file generated +# via CMake buildsystem rule. +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +###################################################################### + +[project] +name = "@DISTRIBUTION_NAME@" +version = "@CMAKE_PROJECT_VERSION@" +description = "Machinekit-HAL CyCompat CPython extension module" +requires-python = ">=3.6" +keywords = ["CyCompat", "HAL", "Runtime", "module"] +maintainers = [ + {name = "Machinekit organisation", email = "machinekit@eryaf.com"} +] + +dependencies = [] + +dynamic = [] + +[project.urls] +homepage = "https://machinekit.io" +documentation = "https://machinekit.io" +repository = "https://github.com/machinekit/machinekit-hal" + +[tool] +[tool.pdm] +includes = [ + "src/machinekit", +] +source-includes = ["CMakeLists.txt", "src/**/*.c"] +package-dir = "src" +build = "build.py" + +[build-system] +requires = ["pdm-pep517", "setuptools", "cmake", "cmake_build_extension", "ninja"] +build-backend = "pdm.pep517.api" \ No newline at end of file diff --git a/src/libraries/cyhal/CMakeLists.txt b/src/libraries/cyhal/CMakeLists.txt index 71394e6ce5..016637a79c 100644 --- a/src/libraries/cyhal/CMakeLists.txt +++ b/src/libraries/cyhal/CMakeLists.txt @@ -23,3 +23,190 @@ # # ##################################################################### # ~~~ + +if(BUILD_PYTHON_DISTRIBUTIONS) + option(BUILD_CYHAL_MODULE_LIBRARY + "Built the CyHAL Python Cython extension library distribution." TRUE) + + if(BUILD_CYHAL_MODULE_LIBRARY) + find_program(PYPROJECT_BUILD "pyproject-build" REQUIRED) + find_program(CYTHON "cython" "cython3" REQUIRED) + include(PEP427Installer) + + set(PACKAGE_NAME "cyhal") + + set(DISTRIBUTION_NAME "${MACHINEKIT_HAL_PACKAGE_PREFIX}_${PACKAGE_NAME}") + string(REGEX REPLACE "[._~ ]" "-" DISTRIBUTION_NORMALIZED_NAME + ${DISTRIBUTION_NAME}) + + # Files representing the Python package + set(CYHAL_MODULE_MAIN_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/hal.pyx) + + set(CYHAL_MODULE_DEPENDENCY_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_component.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_const.pxd + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_data.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_epsilon.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_funct.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_group.pxd + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_group.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_instdict.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_inst.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_iter.pxd + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_loadusr.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_net.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_objectdict.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_objectops.pxd + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_object.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_pindict.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_pin.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_priv.pxd + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal.pxd + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_rcomp.pxd + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_rcomp.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_ring.pxd + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_ring.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_sigdict.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_signal.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_threads.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/hal_util.pxd + ${CMAKE_CURRENT_SOURCE_DIR}/src/ring_const.pxd + ${CMAKE_CURRENT_SOURCE_DIR}/src/ring.pxd) + + # TODO: This is ugly, set it so it does not mention wheel or sdist + set(PRIVATE_HEADER_FILES + "$" + ) + + set(PYTHON_INIT ${CMAKE_CURRENT_SOURCE_DIR}/src/__init__.py) + set(PYTHON_PDM_BUILD ${CMAKE_CURRENT_SOURCE_DIR}/src/build.py) + set(CYHAL_MODULE_CMAKELISTS + ${CMAKE_CURRENT_SOURCE_DIR}/src/CMakeLists.txt.in) + set(PYTHON_PYPROJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/pyproject.toml.in) + + set(OUTPUT_INDEX + ${MACHINEKIT_HAL_PYTHON_INDEX}/${DISTRIBUTION_NORMALIZED_NAME}) + + file(REMOVE_RECURSE + ${CMAKE_CURRENT_BINARY_DIR}/${DISTRIBUTION_NORMALIZED_NAME}) + configure_file( + ${PYTHON_INIT} + ${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + COPYONLY + NO_SOURCE_PERMISSIONS) + configure_file(${PYTHON_PDM_BUILD} ${PACKAGE_NAME}/build.py COPYONLY + NO_SOURCE_PERMISSIONS) + configure_file(${CYHAL_MODULE_CMAKELISTS} ${PACKAGE_NAME}/CMakeLists.txt + @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) + configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY + NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) + + add_custom_command( + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal.c + DEPENDS ${CYHAL_MODULE_MAIN_SOURCE} ${CYHAL_MODULE_DEPENDENCY_SOURCES} + ${PRIVATE_HEADER_FILES} ${PRIVATE_HEADER_FILES} + COMMAND + ${CYTHON} "-3" "-w" "${CMAKE_CURRENT_BINARY_DIR}" "-I" + "${CMAKE_CURRENT_SOURCE_DIR}/src" "-I" + "$" "-I" + "${PRIVATE_HEADER_FILES}" "-I" + "$" "-o" + "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal.c" + "-t" "${CYHAL_MODULE_MAIN_SOURCE}" + COMMENT + "Translating the Cython code for Python package ${DISTRIBUTION_NAME} via external tool" + ) + + if(PYTHON_PLAT_NAME) + set(_python_plat_name + "--config-setting=\"--plat-name=${PYTHON_PLAT_NAME}\"") + else() + set(_python_plat_name "") # Make sure it is empty + endif() + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal.c + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + # TODO: This is hackins approach to solve issue with building multiple CONFIGS: + # Each config build is separated and because the wheel build uses an isolated + # environment, the paths to executables (python, pip etc.) are stored in CMake + # cache during generation. Second (et al) builds then try to reuse the first + # generation and fails because the temporary environment from the first run no + # longer exists + # This will need a rework as it should use its own manual isolation (for Debian + # and other distros because they require it) and generally to keep the build + # files for possibility of post-mortem + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/build" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" + "MACHINEKIT_HAL_BUILD_CONFIG=$" "${PYPROJECT_BUILD}" "-w" "-o" + "${OUTPUT_INDEX}" "${_python_plat_name}" + "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal.c + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" + "MACHINEKIT_HAL_BUILD_CONFIG=$" "${PYPROJECT_BUILD}" "-s" "-o" + "${OUTPUT_INDEX}" "${_python_plat_name}" + "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal.c + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal.c + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) + + add_dependencies(${DISTRIBUTION_NAME}_wheel_distribution hal runtime) + add_dependencies(${DISTRIBUTION_NAME}_sdist_distribution hal runtime) + + install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT + MachinekitHAL_Library_CyHAL_Module_Python_Packages) + + cpack_add_component(MachinekitHAL_Library_CyHAL_Module_Python_Packages + GROUP MachinekitHAL_Library_CyHAL_Module) + + # Specification of artifacts placement in package tree + cpack_add_component_group( + MachinekitHAL_Library_CyHAL_Module + PARENT_GROUP MachinekitHAL_Package_Base_Python_Libraries) + endif() +endif() diff --git a/src/libraries/cyhal/README.from b/src/libraries/cyhal/README.asciidoc similarity index 100% rename from src/libraries/cyhal/README.from rename to src/libraries/cyhal/README.asciidoc diff --git a/src/libraries/cyhal/examples/README b/src/libraries/cyhal/examples/README.asciidoc similarity index 100% rename from src/libraries/cyhal/examples/README rename to src/libraries/cyhal/examples/README.asciidoc diff --git a/src/libraries/cyhal/examples/component.py b/src/libraries/cyhal/examples/component.py index e1881c20e8..73a0c4ff5d 100644 --- a/src/libraries/cyhal/examples/component.py +++ b/src/libraries/cyhal/examples/component.py @@ -9,7 +9,7 @@ import time -from machinekit import hal +import machinekit.hal.cyhal as hal c = hal.Component('zzz') p = c.newpin("p0", hal.HAL_S32, hal.HAL_OUT, init=42) diff --git a/src/libraries/cyhal/examples/group.py b/src/libraries/cyhal/examples/group.py index 267a29185a..a675fa7498 100644 --- a/src/libraries/cyhal/examples/group.py +++ b/src/libraries/cyhal/examples/group.py @@ -1,7 +1,7 @@ # basic group example -from machinekit import hal +import machinekit.hal.cyhal as hal g2 = hal.Group("group1") s1 = hal.Signal("sigs32", hal.HAL_S32) s2 = hal.Signal("sigfloat", hal.HAL_FLOAT) diff --git a/src/libraries/cyhal/examples/heaptrace.py b/src/libraries/cyhal/examples/heaptrace.py index 04c38b3696..cc924c0bfd 100644 --- a/src/libraries/cyhal/examples/heaptrace.py +++ b/src/libraries/cyhal/examples/heaptrace.py @@ -4,7 +4,7 @@ # HAL internals introspection - the hal_data descriptor # and shared memory heap -from machinekit import hal +import machinekit.hal.cyhal as hal hd = hal.HALData() hd.heap_flags = -1 # log RTAPI malloc/free operations diff --git a/src/libraries/cyhal/examples/internal.py b/src/libraries/cyhal/examples/internal.py index 51ae46604c..7b1302f0a8 100644 --- a/src/libraries/cyhal/examples/internal.py +++ b/src/libraries/cyhal/examples/internal.py @@ -4,7 +4,7 @@ # HAL internals introspection - the hal_data descriptor # and shared memory heap -from machinekit import hal +import machinekit.hal.cyhal as hal hd = hal.HALData() hd.heap_flags = -1 # log RTAPI malloc/free operations diff --git a/src/libraries/cyhal/examples/test_instance.py b/src/libraries/cyhal/examples/test_instance.py index f7f96d8028..e922b98771 100644 --- a/src/libraries/cyhal/examples/test_instance.py +++ b/src/libraries/cyhal/examples/test_instance.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -from machinekit import hal +import machinekit.hal.cyhal as hal for name in hal.instances(): diff --git a/src/libraries/cyhal/src/CMakeLists.txt.in b/src/libraries/cyhal/src/CMakeLists.txt.in new file mode 100644 index 0000000000..7a9b1bf3f4 --- /dev/null +++ b/src/libraries/cyhal/src/CMakeLists.txt.in @@ -0,0 +1,73 @@ +# ~~~ +# #################################################################### +# Description: CMakeLists.txt +# +# This file, 'CMakeLists.txt', implements build system +# rules for Machinekit-HAL project +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +# ##################################################################### +# ~~~ + +cmake_minimum_required(VERSION 3.22) + +project( + CyHALModule + VERSION @CMAKE_PROJECT_VERSION@ + DESCRIPTION "Python Cython extension module for Machinekit-HAL HAL." + HOMEPAGE_URL "https://machinekit.io" + LANGUAGES C) + +set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE) +set(CMAKE_EXPORT_LINK_COMMANDS TRUE) + +set(CMAKE_C_STANDARD 11) +set(CMAKE_C_EXTENSIONS FALSE) +set(CMAKE_CXX_EXTENSIONS FALSE) +set(CMAKE_C_STANDARD_REQUIRED TRUE) + +set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) + +find_package( + Python 3.6...4.0 + COMPONENTS Development + REQUIRED) + +find_package( + Machinekit-HAL + COMPONENTS Unmanaged-Runtime Unmanaged-HAL + REQUIRED) + +set(SOURCE_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/src/machinekit/hal/cyhal/hal.c) + +python_add_library(cyhal MODULE WITH_SOABI ${SOURCE_FILES}) + +target_link_libraries( + cyhal PRIVATE Machinekit::HAL::runtime Machinekit::HAL::hal Machinekit::HAL::hal_api Machinekit::HAL::runtime_api) + +set_target_properties( + cyhal + PROPERTIES OUTPUT_NAME "hal") + +install( + TARGETS cyhal + LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX} + ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX} + RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_PREFIX}) diff --git a/src/libraries/cyhal/src/__init__.py b/src/libraries/cyhal/src/__init__.py index e69de29bb2..115c1c3e45 100644 --- a/src/libraries/cyhal/src/__init__.py +++ b/src/libraries/cyhal/src/__init__.py @@ -0,0 +1 @@ +from .hal import * \ No newline at end of file diff --git a/src/libraries/cyhal/src/build.py b/src/libraries/cyhal/src/build.py new file mode 100644 index 0000000000..5b228ec395 --- /dev/null +++ b/src/libraries/cyhal/src/build.py @@ -0,0 +1,38 @@ +import pathlib +import sys +import os +import cmake_build_extension + +CMAKE_CONFIGURE_EXTENSION_OPTIONS = [] + +if "CMAKE_MODULE_PATH" in os.environ: + CMAKE_CONFIGURE_EXTENSION_OPTIONS.append( + f"-DCMAKE_MODULE_PATH={os.environ['CMAKE_MODULE_PATH']}") + +if "CMAKE_PREFIX_PATH" in os.environ: + CMAKE_CONFIGURE_EXTENSION_OPTIONS.append( + f"-DCMAKE_PREFIX_PATH={os.environ['CMAKE_PREFIX_PATH']}") + +if "CMAKE_TOOLCHAIN_FILE" in os.environ and os.environ["CMAKE_TOOLCHAIN_FILE"]: + CMAKE_CONFIGURE_EXTENSION_OPTIONS.append( + f"--toolchain={os.environ['CMAKE_TOOLCHAIN_FILE']}") + +ext_modules = [ + cmake_build_extension.CMakeExtension(name='cyhal', + install_prefix="machinekit/hal/cyhal", + source_dir=str( + pathlib.Path(__file__).absolute().parent), + cmake_build_type=os.environ.get( + "MACHINEKIT_HAL_BUILD_CONFIG", "Release"), + cmake_configure_options=[ + "-DBUILD_SHARED_LIBS:BOOL=FALSE", + ] + CMAKE_CONFIGURE_EXTENSION_OPTIONS + ) +] + +cmdclass = dict(build_ext=cmake_build_extension.BuildExtension) + + +def build(setup_kwargs, **kwargs): + setup_kwargs.update(ext_modules=ext_modules, + cmdclass=cmdclass) diff --git a/src/libraries/cyhal/src/hal.pxd b/src/libraries/cyhal/src/hal.pxd index 2bc766c886..fd21147c87 100644 --- a/src/libraries/cyhal/src/hal.pxd +++ b/src/libraries/cyhal/src/hal.pxd @@ -8,7 +8,7 @@ from libc.stdint cimport uint64_t, int64_t # see http://psha.org.ru/cgit/psha/emc2.git/commit/?h=wip-cython # License: MIT -cdef extern from "hal.h": +cdef extern from "hal/hal.h": int hal_init(char *name) int hal_exit(int comp_id) int hal_ready(int comp_id) diff --git a/src/libraries/cyhal/src/hal_const.pxd b/src/libraries/cyhal/src/hal_const.pxd index 8af2e11120..f4ca2368d7 100644 --- a/src/libraries/cyhal/src/hal_const.pxd +++ b/src/libraries/cyhal/src/hal_const.pxd @@ -1,4 +1,4 @@ -cdef extern from "hal.h": +cdef extern from "hal/hal.h": ctypedef enum comp_type_t: TYPE_INVALID TYPE_RT @@ -56,7 +56,7 @@ cdef extern from "hal.h": HAL_GROUP HAL_MEMBER -cdef extern from "hal_group.h": +cdef extern from "hal/hal_group.h": ctypedef enum report_phase_t: REPORT_BEGIN REPORT_SIGNAL diff --git a/src/libraries/cyhal/src/hal_group.pxd b/src/libraries/cyhal/src/hal_group.pxd index 6bb51dec71..2ccc7c15bd 100644 --- a/src/libraries/cyhal/src/hal_group.pxd +++ b/src/libraries/cyhal/src/hal_group.pxd @@ -2,7 +2,7 @@ from hal_priv cimport hal_shmem_base, hal_data_u, hal_data, hal_sig_t,halhdr_t from rtapi cimport rtapi_atomic_type from libc.stdint cimport uint8_t -cdef extern from "hal_group.h" : +cdef extern from "hal/hal_group.h" : int GROUP_REPORT_ON_CHANGE diff --git a/src/libraries/cyhal/src/hal_iter.pxd b/src/libraries/cyhal/src/hal_iter.pxd index 100535d7c1..71cfa0bd87 100644 --- a/src/libraries/cyhal/src/hal_iter.pxd +++ b/src/libraries/cyhal/src/hal_iter.pxd @@ -1,6 +1,6 @@ from hal_group cimport hal_group_t, hal_member_t -cdef extern from "hal_iter.h": +cdef extern from "hal/hal_iter.h": ctypedef int (*hal_comp_callback_t) (hal_comp_t *comp, void *arg) ctypedef int (*hal_sig_callback_t) (hal_sig_t *sig, void *arg) ctypedef int (*hal_ring_callback_t) (hal_ring_t *ring, void *arg) diff --git a/src/libraries/cyhal/src/hal_objectops.pxd b/src/libraries/cyhal/src/hal_objectops.pxd index 45cade2086..f77bd8d245 100644 --- a/src/libraries/cyhal/src/hal_objectops.pxd +++ b/src/libraries/cyhal/src/hal_objectops.pxd @@ -9,7 +9,7 @@ from cpython cimport bool from libc.stdint cimport uint8_t,uint32_t -cdef extern from "hal_object.h": +cdef extern from "hal/hal_object.h": ctypedef union hal_object_ptr: halhdr_t *hdr diff --git a/src/libraries/cyhal/src/hal_priv.pxd b/src/libraries/cyhal/src/hal_priv.pxd index 744478fb97..5ef0c9e49e 100644 --- a/src/libraries/cyhal/src/hal_priv.pxd +++ b/src/libraries/cyhal/src/hal_priv.pxd @@ -8,13 +8,13 @@ from hal_const cimport hal_type_t, hal_pin_dir_t, hal_param_dir_t from rtapi cimport rtapi_heap from cpython cimport bool -cdef extern from "hal_object.h": +cdef extern from "hal/hal_object.h": ctypedef struct halhdr_t: pass -cdef extern from "hal_priv.h": +cdef extern from "hal/hal_priv.h": int MAX_EPSILON int HAL_MAX_RINGS diff --git a/src/libraries/cyhal/src/hal_rcomp.pxd b/src/libraries/cyhal/src/hal_rcomp.pxd index 537b427aa5..db2b748d0a 100644 --- a/src/libraries/cyhal/src/hal_rcomp.pxd +++ b/src/libraries/cyhal/src/hal_rcomp.pxd @@ -2,7 +2,7 @@ from hal_priv cimport hal_data_u, hal_pin_t -cdef extern from "hal_rcomp.h": +cdef extern from "hal/hal_rcomp.h": int RCOMP_ACCEPT_VALUES_ON_BIND ctypedef struct hal_compiled_comp_t: diff --git a/src/libraries/cyhal/src/hal_ring.pxd b/src/libraries/cyhal/src/hal_ring.pxd index 8fdd0f1bee..ad5a017206 100644 --- a/src/libraries/cyhal/src/hal_ring.pxd +++ b/src/libraries/cyhal/src/hal_ring.pxd @@ -3,7 +3,7 @@ from hal_priv cimport halhdr_t from ring cimport ringbuffer_t -cdef extern from "hal_ring.h": +cdef extern from "hal/hal_ring.h": ctypedef struct hal_ring_t: halhdr_t hdr int ring_id diff --git a/src/libraries/cyhal/src/pyproject.toml.in b/src/libraries/cyhal/src/pyproject.toml.in new file mode 100644 index 0000000000..5aef0ed591 --- /dev/null +++ b/src/libraries/cyhal/src/pyproject.toml.in @@ -0,0 +1,57 @@ +##################################################################### +# Description: pyproject.toml.in +# +# This file, 'pyproject.toml.in', is a part of Machinekit-HAL +# buildsystem and specifies metadata for a Python distribution. +# This is a template from which is the real file generated +# via CMake buildsystem rule. +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +###################################################################### + +[project] +name = "@DISTRIBUTION_NAME@" +version = "@CMAKE_PROJECT_VERSION@" +description = "Machinekit-HAL CyHAL CPython extension module" +requires-python = ">=3.6" +keywords = ["CyHAL", "HAL", "Runtime", "module"] +maintainers = [ + {name = "Machinekit organisation", email = "machinekit@eryaf.com"} +] + +dependencies = [] + +dynamic = [] + +[project.urls] +homepage = "https://machinekit.io" +documentation = "https://machinekit.io" +repository = "https://github.com/machinekit/machinekit-hal" + +[tool] +[tool.pdm] +includes = [ + "src/machinekit", +] +source-includes = ["CMakeLists.txt", "src/**/*.c"] +package-dir = "src" +build = "build.py" + +[build-system] +requires = ["pdm-pep517", "setuptools", "cmake", "cmake_build_extension", "ninja"] +build-backend = "pdm.pep517.api" \ No newline at end of file diff --git a/src/libraries/cyhal/src/ring.pxd b/src/libraries/cyhal/src/ring.pxd index 4add32c0c3..8c3bb06705 100644 --- a/src/libraries/cyhal/src/ring.pxd +++ b/src/libraries/cyhal/src/ring.pxd @@ -4,7 +4,7 @@ from libc.stdint cimport uint64_t, uint8_t, uint32_t, int32_t from libc.stddef cimport size_t from rtapi cimport rtapi_atomic_type -cdef extern from "ring.h": +cdef extern from "runtime/ring.h": int RINGTYPE_RECORD int RINGTYPE_MULTIPART int RINGTYPE_STREAM @@ -104,7 +104,7 @@ cdef extern from "ring.h": size_t stream_write(ringbuffer_t *ring, const char *src, ringsize_t cnt) void stream_write_advance(ringbuffer_t *ring, ringsize_t cnt) -cdef extern from "multiframe.h": +cdef extern from "runtime/multiframe.h": ctypedef struct msgbuffer_t: ringbuffer_t * ring void * _write diff --git a/src/libraries/cyhal/src/ring_const.pxd b/src/libraries/cyhal/src/ring_const.pxd index c1fceb9281..50408c938b 100644 --- a/src/libraries/cyhal/src/ring_const.pxd +++ b/src/libraries/cyhal/src/ring_const.pxd @@ -1,4 +1,4 @@ -cdef extern from "ring.h": +cdef extern from "runtime/ring.h": ctypedef enum ring_type_t: RINGTYPE_RECORD RINGTYPE_MULTIPART diff --git a/src/libraries/cyhal/test.py b/src/libraries/cyhal/test/test.py similarity index 100% rename from src/libraries/cyhal/test.py rename to src/libraries/cyhal/test/test.py diff --git a/src/libraries/cyruntime/CMakeLists.txt b/src/libraries/cyruntime/CMakeLists.txt index 71394e6ce5..fa27975428 100644 --- a/src/libraries/cyruntime/CMakeLists.txt +++ b/src/libraries/cyruntime/CMakeLists.txt @@ -23,3 +23,166 @@ # # ##################################################################### # ~~~ + +if(BUILD_PYTHON_DISTRIBUTIONS) + option(BUILD_CYRUNTIME_MODULE_LIBRARY + "Built the CyRuntime Python Cython extension library distribution." + TRUE) + + if(BUILD_CYRUNTIME_MODULE_LIBRARY) + find_program(PYPROJECT_BUILD "pyproject-build" REQUIRED) + find_program(CYTHON "cython" "cython3" REQUIRED) + include(PEP427Installer) + + set(PACKAGE_NAME "cyruntime") + + set(DISTRIBUTION_NAME "${MACHINEKIT_HAL_PACKAGE_PREFIX}_${PACKAGE_NAME}") + string(REGEX REPLACE "[._~ ]" "-" DISTRIBUTION_NORMALIZED_NAME + ${DISTRIBUTION_NAME}) + + # Files representing the Python package + set(CYRUNTIME_MODULE_MAIN_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/rtapi.pyx) + set(CYRUNTIME_MODULE_DEPENDENCY_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/src/rtapi_app.pyx + ${CMAKE_CURRENT_SOURCE_DIR}/src/rtapi_app.pxd) + set(PUBLIC_INCLUDE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/cyruntime) + set(PUBLIC_HEADER_FILES ${PUBLIC_INCLUDE_DIRECTORY}/rtapi.pxd) + set(PYTHON_INIT ${CMAKE_CURRENT_SOURCE_DIR}/src/__init__.py) + set(PYTHON_PDM_BUILD ${CMAKE_CURRENT_SOURCE_DIR}/src/build.py) + set(CYRUNTIME_MODULE_CMAKELISTS + ${CMAKE_CURRENT_SOURCE_DIR}/src/CMakeLists.txt.in) + set(PYTHON_PYPROJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/pyproject.toml.in) + + set(OUTPUT_INDEX + ${MACHINEKIT_HAL_PYTHON_INDEX}/${DISTRIBUTION_NORMALIZED_NAME}) + + file(REMOVE_RECURSE + ${CMAKE_CURRENT_BINARY_DIR}/${DISTRIBUTION_NORMALIZED_NAME}) + configure_file( + ${PYTHON_INIT} + ${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + COPYONLY + NO_SOURCE_PERMISSIONS) + configure_file(${PYTHON_PDM_BUILD} ${PACKAGE_NAME}/build.py COPYONLY + NO_SOURCE_PERMISSIONS) + configure_file(${CYRUNTIME_MODULE_CMAKELISTS} ${PACKAGE_NAME}/CMakeLists.txt + @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) + configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY + NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) + + add_custom_command( + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/rtapi.c + DEPENDS ${CYRUNTIME_MODULE_MAIN_SOURCE} + ${CYRUNTIME_MODULE_DEPENDENCY_SOURCES} ${PUBLIC_HEADER_FILES} + COMMAND + ${CYTHON} "-3" "-w" "${CMAKE_CURRENT_BINARY_DIR}" "-I" + "${PUBLIC_INCLUDE_DIRECTORY}" "-I" "${CMAKE_CURRENT_SOURCE_DIR}/src" + "-I" "$" "-o" + "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/rtapi.c" + "-t" "${CYRUNTIME_MODULE_MAIN_SOURCE}" + COMMENT + "Translating the Cython code for Python package ${DISTRIBUTION_NAME} via external tool" + ) + + if(PYTHON_PLAT_NAME) + set(_python_plat_name + "--config-setting=\"--plat-name=${PYTHON_PLAT_NAME}\"") + else() + set(_python_plat_name "") # Make sure it is empty + endif() + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/rtapi.c + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + # TODO: This is hackins approach to solve issue with building multiple CONFIGS: + # Each config build is separated and because the wheel build uses an isolated + # environment, the paths to executables (python, pip etc.) are stored in CMake + # cache during generation. Second (et al) builds then try to reuse the first + # generation and fails because the temporary environment from the first run no + # longer exists + # This will need a rework as it should use its own manual isolation (for Debian + # and other distros because they require it) and generally to keep the build + # files for possibility of post-mortem + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/build" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" + "MACHINEKIT_HAL_BUILD_CONFIG=$" "${PYPROJECT_BUILD}" "-w" "-o" + "${OUTPUT_INDEX}" "${_python_plat_name}" + "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/rtapi.c + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" + "MACHINEKIT_HAL_BUILD_CONFIG=$" "${PYPROJECT_BUILD}" "-s" "-o" + "${OUTPUT_INDEX}" "${_python_plat_name}" + "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/rtapi.c + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/rtapi.c + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) + + set_target_properties( + ${DISTRIBUTION_NAME}_wheel_distribution + PROPERTIES PUBLIC_INCLUDE_DIRECTORY ${PUBLIC_INCLUDE_DIRECTORY}) + set_target_properties( + ${DISTRIBUTION_NAME}_sdist_distribution + PROPERTIES PUBLIC_INCLUDE_DIRECTORY ${PUBLIC_INCLUDE_DIRECTORY}) + + add_dependencies(${DISTRIBUTION_NAME}_wheel_distribution runtime + hal_command) + add_dependencies(${DISTRIBUTION_NAME}_sdist_distribution runtime + hal_command) + + install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT + MachinekitHAL_Library_CyRuntime_Module_Python_Packages) + + cpack_add_component(MachinekitHAL_Library_CyRuntime_Module_Python_Packages + GROUP MachinekitHAL_Library_CyRuntime_Module) + + # Specification of artifacts placement in package tree + cpack_add_component_group( + MachinekitHAL_Library_CyRuntime_Module + PARENT_GROUP MachinekitHAL_Package_Base_Python_Libraries) + endif() +endif() diff --git a/src/libraries/cyruntime/include/rtapi.pxd b/src/libraries/cyruntime/include/cyruntime/rtapi.pxd similarity index 90% rename from src/libraries/cyruntime/include/rtapi.pxd rename to src/libraries/cyruntime/include/cyruntime/rtapi.pxd index d94e762014..5ec01f19dc 100644 --- a/src/libraries/cyruntime/include/rtapi.pxd +++ b/src/libraries/cyruntime/include/cyruntime/rtapi.pxd @@ -6,7 +6,7 @@ cdef extern from "stdarg.h": ctypedef struct va_list: pass -cdef extern from "rtapi_shmkeys.h": +cdef extern from "runtime/rtapi_shmkeys.h": cdef int DEFAULT_MOTION_SHMEM_KEY cdef int GLOBAL_KEY cdef int SCOPE_SHM_KEY @@ -15,12 +15,12 @@ cdef extern from "rtapi_shmkeys.h": cdef int RTAPI_RING_SHM_KEY -cdef extern from "rtapi_bitops.h": +cdef extern from "runtime/rtapi_bitops.h": ctypedef unsigned long rtapi_atomic_type int RTAPI_BIT_TEST(rtapi_atomic_type *a, int b) int RTAPI_BIT(int b) -cdef extern from "rtapi.h": +cdef extern from "runtime/rtapi.h": int rtapi_init(const char *name) int rtapi_exit(int comp_id) int rtapi_next_handle() @@ -62,7 +62,7 @@ cdef extern from "rtapi.h": void rtapi_print_msg(int level, const char *fmt, ...) -cdef extern from "rtapi_heap.h": +cdef extern from "runtime/rtapi_heap.h": int RTAPIHEAP_TRACE_MALLOC int RTAPIHEAP_TRACE_FREE @@ -81,3 +81,6 @@ cdef extern from "rtapi_heap.h": size_t rtapi_heap_walk_freelist(rtapi_heap *h, chunk_t callback, void *user) + +cdef extern from "runtime/config.h": + cdef char *const machinekit_hal_ini_file diff --git a/src/libraries/cyruntime/src/CMakeLists.txt.in b/src/libraries/cyruntime/src/CMakeLists.txt.in new file mode 100644 index 0000000000..45638ae212 --- /dev/null +++ b/src/libraries/cyruntime/src/CMakeLists.txt.in @@ -0,0 +1,74 @@ +# ~~~ +# #################################################################### +# Description: CMakeLists.txt +# +# This file, 'CMakeLists.txt', implements build system +# rules for Machinekit-HAL project +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +# ##################################################################### +# ~~~ + +cmake_minimum_required(VERSION 3.22) + +project( + CyRuntimeModule + VERSION @CMAKE_PROJECT_VERSION@ + DESCRIPTION "Python Cython extension module for Machinekit-HAL Runtime." + HOMEPAGE_URL "https://machinekit.io" + LANGUAGES C) + +set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE) +set(CMAKE_EXPORT_LINK_COMMANDS TRUE) + +set(CMAKE_C_STANDARD 11) +set(CMAKE_C_EXTENSIONS FALSE) +set(CMAKE_CXX_EXTENSIONS FALSE) +set(CMAKE_C_STANDARD_REQUIRED TRUE) + +set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) + +find_package( + Python 3.6...4.0 + COMPONENTS Development + REQUIRED) + +find_package( + Machinekit-HAL + COMPONENTS Unmanaged-Runtime HAL-Command + REQUIRED) + +set(SOURCE_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/src/machinekit/hal/cyruntime/rtapi.c) + +python_add_library(cyruntime MODULE WITH_SOABI ${SOURCE_FILES}) + +target_link_libraries( + cyruntime PRIVATE Machinekit::HAL::runtime Machinekit::HAL::hal_command + Machinekit::HAL::runtime_config) + +set_target_properties( + cyruntime + PROPERTIES OUTPUT_NAME "rtapi") + +install( + TARGETS cyruntime + LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX} + ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX} + RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_PREFIX}) diff --git a/src/libraries/cyruntime/src/__init__.py b/src/libraries/cyruntime/src/__init__.py index 72f9adb24f..2337eb85a1 100644 --- a/src/libraries/cyruntime/src/__init__.py +++ b/src/libraries/cyruntime/src/__init__.py @@ -1 +1 @@ -from .cyhal import * \ No newline at end of file +from .rtapi import * \ No newline at end of file diff --git a/src/libraries/cyruntime/src/build.py b/src/libraries/cyruntime/src/build.py new file mode 100644 index 0000000000..4732bb4255 --- /dev/null +++ b/src/libraries/cyruntime/src/build.py @@ -0,0 +1,38 @@ +import pathlib +import sys +import os +import cmake_build_extension + +CMAKE_CONFIGURE_EXTENSION_OPTIONS = [] + +if "CMAKE_MODULE_PATH" in os.environ: + CMAKE_CONFIGURE_EXTENSION_OPTIONS.append( + f"-DCMAKE_MODULE_PATH={os.environ['CMAKE_MODULE_PATH']}") + +if "CMAKE_PREFIX_PATH" in os.environ: + CMAKE_CONFIGURE_EXTENSION_OPTIONS.append( + f"-DCMAKE_PREFIX_PATH={os.environ['CMAKE_PREFIX_PATH']}") + +if "CMAKE_TOOLCHAIN_FILE" in os.environ and os.environ["CMAKE_TOOLCHAIN_FILE"]: + CMAKE_CONFIGURE_EXTENSION_OPTIONS.append( + f"--toolchain={os.environ['CMAKE_TOOLCHAIN_FILE']}") + +ext_modules = [ + cmake_build_extension.CMakeExtension(name='cyruntime', + install_prefix="machinekit/hal/cyruntime", + source_dir=str( + pathlib.Path(__file__).absolute().parent), + cmake_build_type=os.environ.get( + "MACHINEKIT_HAL_BUILD_CONFIG", "Release"), + cmake_configure_options=[ + "-DBUILD_SHARED_LIBS:BOOL=FALSE", + ] + CMAKE_CONFIGURE_EXTENSION_OPTIONS + ) +] + +cmdclass = dict(build_ext=cmake_build_extension.BuildExtension) + + +def build(setup_kwargs, **kwargs): + setup_kwargs.update(ext_modules=ext_modules, + cmdclass=cmdclass) diff --git a/src/libraries/cyruntime/src/pyproject.toml.in b/src/libraries/cyruntime/src/pyproject.toml.in new file mode 100644 index 0000000000..ba298d434d --- /dev/null +++ b/src/libraries/cyruntime/src/pyproject.toml.in @@ -0,0 +1,57 @@ +##################################################################### +# Description: pyproject.toml.in +# +# This file, 'pyproject.toml.in', is a part of Machinekit-HAL +# buildsystem and specifies metadata for a Python distribution. +# This is a template from which is the real file generated +# via CMake buildsystem rule. +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +###################################################################### + +[project] +name = "@DISTRIBUTION_NAME@" +version = "@CMAKE_PROJECT_VERSION@" +description = "Machinekit-HAL CyRuntime CPython extension module" +requires-python = ">=3.6" +keywords = ["CyRuntime", "HAL", "Runtime", "module"] +maintainers = [ + {name = "Machinekit organisation", email = "machinekit@eryaf.com"} +] + +dependencies = [] + +dynamic = [] + +[project.urls] +homepage = "https://machinekit.io" +documentation = "https://machinekit.io" +repository = "https://github.com/machinekit/machinekit-hal" + +[tool] +[tool.pdm] +includes = [ + "src/machinekit", +] +source-includes = ["CMakeLists.txt", "src/**/*.c"] +package-dir = "src" +build = "build.py" + +[build-system] +requires = ["pdm-pep517", "setuptools", "cmake", "cmake_build_extension", "ninja"] +build-backend = "pdm.pep517.api" \ No newline at end of file diff --git a/src/libraries/cyruntime/src/rtapi.pyx b/src/libraries/cyruntime/src/rtapi.pyx index 7a2e144ebe..5f66bb102f 100644 --- a/src/libraries/cyruntime/src/rtapi.pyx +++ b/src/libraries/cyruntime/src/rtapi.pyx @@ -4,6 +4,8 @@ # RT logger # rtapi_app command interface +from rtapi cimport * + from os import strerror, getpid from libc.stdlib cimport malloc, free from cpython.bytes cimport PyBytes_FromString @@ -135,11 +137,8 @@ cdef char ** _to_argv(args): import sys import os -from machinekit import hal, config -if sys.version_info >= (3, 0): - import configparser -else: - import ConfigParser as configparser +import machinekit.hal.cyhal as hal +import configparser # enums for classify_comp CS_NOT_LOADED = 0 @@ -167,10 +166,13 @@ class RTAPIcommand: def __init__(self, unicode uuid="", int instance=0, unicode uri=""): rtapi_required() if uuid == "" and uri == "": # try to get the uuid from the ini - mkconfig = config.Config() + # Config Python module temporarily disabled as the exact same functionality can + # be found linked in directly into Machinekit-HAL's Runtime from C API + #mkconfig = config.Config() mkini = os.getenv("MACHINEKIT_INI") if mkini is None: - mkini = mkconfig.MACHINEKIT_INI + #mkini = mkconfig.MACHINEKIT_INI + mkini = machinekit_hal_ini_file if not os.path.isfile(mkini): raise RuntimeError("MACHINEKIT_INI " + mkini + " does not exist") diff --git a/src/libraries/cyruntime/src/rtapi_app.pxd b/src/libraries/cyruntime/src/rtapi_app.pxd index 919b391855..e67210e0dd 100644 --- a/src/libraries/cyruntime/src/rtapi_app.pxd +++ b/src/libraries/cyruntime/src/rtapi_app.pxd @@ -1,5 +1,5 @@ # vim: sts=4 sw=4 et -cdef extern from "halcmd_rtapiapp.h": +cdef extern from "hal_command/halcmd_rtapiapp.h": int rtapi_connect(int instance, char *uri, char *svc_uuid) int rtapi_loadrt(int instance, const char *modname, const char **args) diff --git a/src/libraries/cyshmcommon/CMakeLists.txt b/src/libraries/cyshmcommon/CMakeLists.txt index 71394e6ce5..f3115ef9c7 100644 --- a/src/libraries/cyshmcommon/CMakeLists.txt +++ b/src/libraries/cyshmcommon/CMakeLists.txt @@ -23,3 +23,156 @@ # # ##################################################################### # ~~~ + +if(BUILD_PYTHON_DISTRIBUTIONS) + option(BUILD_CYSHMCOMMON_MODULE_LIBRARY + "Built the CyShmCommon Python Cython extension library distribution." + TRUE) + + if(BUILD_CYSHMCOMMON_MODULE_LIBRARY) + find_program(PYPROJECT_BUILD "pyproject-build" REQUIRED) + find_program(CYTHON "cython" "cython3" REQUIRED) + include(PEP427Installer) + + set(PACKAGE_NAME "cyshmcommon") + + set(DISTRIBUTION_NAME "${MACHINEKIT_HAL_PACKAGE_PREFIX}_${PACKAGE_NAME}") + string(REGEX REPLACE "[._~ ]" "-" DISTRIBUTION_NORMALIZED_NAME + ${DISTRIBUTION_NAME}) + + # Files representing the Python package + set(CYSHMCOMMON_MODULE_MAIN_SOURCE + ${CMAKE_CURRENT_SOURCE_DIR}/src/shmcommon.pyx) + set(PRIVATE_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/shmcommon.pxd) + set(PYTHON_INIT ${CMAKE_CURRENT_SOURCE_DIR}/src/__init__.py) + set(PYTHON_PDM_BUILD ${CMAKE_CURRENT_SOURCE_DIR}/src/build.py) + set(CYSHMCOMMON_MODULE_CMAKELISTS + ${CMAKE_CURRENT_SOURCE_DIR}/src/CMakeLists.txt.in) + set(PYTHON_PYPROJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/pyproject.toml.in) + + set(OUTPUT_INDEX + ${MACHINEKIT_HAL_PYTHON_INDEX}/${DISTRIBUTION_NORMALIZED_NAME}) + + file(REMOVE_RECURSE + ${CMAKE_CURRENT_BINARY_DIR}/${DISTRIBUTION_NORMALIZED_NAME}) + configure_file( + ${PYTHON_INIT} + ${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + COPYONLY + NO_SOURCE_PERMISSIONS) + configure_file(${PYTHON_PDM_BUILD} ${PACKAGE_NAME}/build.py COPYONLY + NO_SOURCE_PERMISSIONS) + configure_file( + ${CYSHMCOMMON_MODULE_CMAKELISTS} ${PACKAGE_NAME}/CMakeLists.txt @ONLY + NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) + configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY + NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) + + add_custom_command( + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/shmcommon.c + DEPENDS ${CYSHMCOMMON_MODULE_MAIN_SOURCE} ${PRIVATE_HEADER_FILES} + COMMAND + ${CYTHON} "-3" "-w" "${CMAKE_CURRENT_BINARY_DIR}" "-I" + "${CMAKE_CURRENT_SOURCE_DIR}/src" "-I" + "$" "-o" + "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/shmcommon.c" + "-t" "${CYSHMCOMMON_MODULE_MAIN_SOURCE}" + COMMENT + "Translating the Cython code for Python package ${DISTRIBUTION_NAME} via external tool" + ) + + if(PYTHON_PLAT_NAME) + set(_python_plat_name + "--config-setting=\"--plat-name=${PYTHON_PLAT_NAME}\"") + else() + set(_python_plat_name "") # Make sure it is empty + endif() + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/shmcommon.c + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + # TODO: This is hackins approach to solve issue with building multiple CONFIGS: + # Each config build is separated and because the wheel build uses an isolated + # environment, the paths to executables (python, pip etc.) are stored in CMake + # cache during generation. Second (et al) builds then try to reuse the first + # generation and fails because the temporary environment from the first run no + # longer exists + # This will need a rework as it should use its own manual isolation (for Debian + # and other distros because they require it) and generally to keep the build + # files for possibility of post-mortem + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/build" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" + "MACHINEKIT_HAL_BUILD_CONFIG=$" "${PYPROJECT_BUILD}" "-w" "-o" + "${OUTPUT_INDEX}" "${_python_plat_name}" + "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/shmcommon.c + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" + "MACHINEKIT_HAL_BUILD_CONFIG=$" "${PYPROJECT_BUILD}" "-s" "-o" + "${OUTPUT_INDEX}" "${_python_plat_name}" + "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/shmcommon.c + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/shmcommon.c + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) + + add_dependencies(${DISTRIBUTION_NAME}_wheel_distribution runtime + runtime_memory_api) + add_dependencies(${DISTRIBUTION_NAME}_sdist_distribution runtime + runtime_memory_api) + + install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT + MachinekitHAL_Library_CyShmCommon_Module_Python_Packages) + + cpack_add_component(MachinekitHAL_Library_CyShmCommon_Module_Python_Packages + GROUP MachinekitHAL_Library_CyShmCommon_Module) + + # Specification of artifacts placement in package tree + cpack_add_component_group( + MachinekitHAL_Library_CyShmCommon_Module + PARENT_GROUP MachinekitHAL_Package_Base_Python_Libraries) + endif() +endif() diff --git a/src/libraries/cyshmcommon/src/CMakeLists.txt.in b/src/libraries/cyshmcommon/src/CMakeLists.txt.in new file mode 100644 index 0000000000..dc5fc9026c --- /dev/null +++ b/src/libraries/cyshmcommon/src/CMakeLists.txt.in @@ -0,0 +1,73 @@ +# ~~~ +# #################################################################### +# Description: CMakeLists.txt +# +# This file, 'CMakeLists.txt', implements build system +# rules for Machinekit-HAL project +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +# ##################################################################### +# ~~~ + +cmake_minimum_required(VERSION 3.22) + +project( + CyShmCommonModule + VERSION @CMAKE_PROJECT_VERSION@ + DESCRIPTION "Python Cython extension module for Machinekit-HAL HAL." + HOMEPAGE_URL "https://machinekit.io" + LANGUAGES C) + +set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE) +set(CMAKE_EXPORT_LINK_COMMANDS TRUE) + +set(CMAKE_C_STANDARD 11) +set(CMAKE_C_EXTENSIONS FALSE) +set(CMAKE_CXX_EXTENSIONS FALSE) +set(CMAKE_C_STANDARD_REQUIRED TRUE) + +set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) + +find_package( + Python 3.6...4.0 + COMPONENTS Development + REQUIRED) + +find_package( + Machinekit-HAL + COMPONENTS Unmanaged-Runtime + REQUIRED) + +set(SOURCE_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/src/machinekit/hal/cyshmcommon/shmcommon.c) + +python_add_library(cyshmcommon MODULE WITH_SOABI ${SOURCE_FILES}) + +target_link_libraries( + cyshmcommon PRIVATE Machinekit::HAL::runtime_memory_api) + +set_target_properties( + cyshmcommon + PROPERTIES OUTPUT_NAME "shmcommon") + +install( + TARGETS cyshmcommon + LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX} + ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX} + RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_PREFIX}) diff --git a/src/libraries/cyshmcommon/src/__init__.py b/src/libraries/cyshmcommon/src/__init__.py index e69de29bb2..400717fd27 100644 --- a/src/libraries/cyshmcommon/src/__init__.py +++ b/src/libraries/cyshmcommon/src/__init__.py @@ -0,0 +1 @@ +from .shmcommon import * diff --git a/src/libraries/cyshmcommon/src/build.py b/src/libraries/cyshmcommon/src/build.py new file mode 100644 index 0000000000..abc079b671 --- /dev/null +++ b/src/libraries/cyshmcommon/src/build.py @@ -0,0 +1,38 @@ +import pathlib +import sys +import os +import cmake_build_extension + +CMAKE_CONFIGURE_EXTENSION_OPTIONS = [] + +if "CMAKE_MODULE_PATH" in os.environ: + CMAKE_CONFIGURE_EXTENSION_OPTIONS.append( + f"-DCMAKE_MODULE_PATH={os.environ['CMAKE_MODULE_PATH']}") + +if "CMAKE_PREFIX_PATH" in os.environ: + CMAKE_CONFIGURE_EXTENSION_OPTIONS.append( + f"-DCMAKE_PREFIX_PATH={os.environ['CMAKE_PREFIX_PATH']}") + +if "CMAKE_TOOLCHAIN_FILE" in os.environ and os.environ["CMAKE_TOOLCHAIN_FILE"]: + CMAKE_CONFIGURE_EXTENSION_OPTIONS.append( + f"--toolchain={os.environ['CMAKE_TOOLCHAIN_FILE']}") + +ext_modules = [ + cmake_build_extension.CMakeExtension(name='cyshmcommon', + install_prefix="machinekit/hal/cyshmcommon", + source_dir=str( + pathlib.Path(__file__).absolute().parent), + cmake_build_type=os.environ.get( + "MACHINEKIT_HAL_BUILD_CONFIG", "Release"), + cmake_configure_options=[ + "-DBUILD_SHARED_LIBS:BOOL=FALSE", + ] + CMAKE_CONFIGURE_EXTENSION_OPTIONS + ) +] + +cmdclass = dict(build_ext=cmake_build_extension.BuildExtension) + + +def build(setup_kwargs, **kwargs): + setup_kwargs.update(ext_modules=ext_modules, + cmdclass=cmdclass) diff --git a/src/libraries/cyshmcommon/src/pyproject.toml.in b/src/libraries/cyshmcommon/src/pyproject.toml.in new file mode 100644 index 0000000000..6e273bc7eb --- /dev/null +++ b/src/libraries/cyshmcommon/src/pyproject.toml.in @@ -0,0 +1,57 @@ +##################################################################### +# Description: pyproject.toml.in +# +# This file, 'pyproject.toml.in', is a part of Machinekit-HAL +# buildsystem and specifies metadata for a Python distribution. +# This is a template from which is the real file generated +# via CMake buildsystem rule. +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +###################################################################### + +[project] +name = "@DISTRIBUTION_NAME@" +version = "@CMAKE_PROJECT_VERSION@" +description = "Machinekit-HAL CyShmCommon CPython extension module" +requires-python = ">=3.6" +keywords = ["CyShmCommon", "HAL", "Runtime", "module"] +maintainers = [ + {name = "Machinekit organisation", email = "machinekit@eryaf.com"} +] + +dependencies = [] + +dynamic = [] + +[project.urls] +homepage = "https://machinekit.io" +documentation = "https://machinekit.io" +repository = "https://github.com/machinekit/machinekit-hal" + +[tool] +[tool.pdm] +includes = [ + "src/machinekit", +] +source-includes = ["CMakeLists.txt", "src/**/*.c"] +package-dir = "src" +build = "build.py" + +[build-system] +requires = ["pdm-pep517", "setuptools", "cmake", "cmake_build_extension", "ninja"] +build-backend = "pdm.pep517.api" \ No newline at end of file diff --git a/src/libraries/cyshmcommon/src/shmcommon.pxd b/src/libraries/cyshmcommon/src/shmcommon.pxd index 8e6b2d68ca..72dace6e93 100644 --- a/src/libraries/cyshmcommon/src/shmcommon.pxd +++ b/src/libraries/cyshmcommon/src/shmcommon.pxd @@ -2,7 +2,7 @@ # cython: language_level=3 -cdef extern from "shmdrv.h": +cdef extern from "runtime/shmdrv.h": cdef extern int c_shmdrv_loaded "shmdrv_loaded" ctypedef struct shm_stat: diff --git a/src/libraries/export_package/CMakeLists.txt b/src/libraries/export_package/CMakeLists.txt new file mode 100644 index 0000000000..3ff63f723a --- /dev/null +++ b/src/libraries/export_package/CMakeLists.txt @@ -0,0 +1,47 @@ +# ~~~ +# #################################################################### +# Description: CMakeLists.txt +# +# This file, 'CMakeLists.txt', implements build system +# rules for Machinekit-HAL project +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +# ##################################################################### +# ~~~ + +option(BUILD_EXPORT_PACKAGE_LIBRARY "Built the Export package library." TRUE) + +if(BUILD_EXPORT_PACKAGE_LIBRARY) + include(CMakePackageConfigHelpers) + + write_basic_package_version_file( + "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/Machinekit-HALVersion.cmake" + VERSION "${CMAKE_PROJECT_VERSION}" + COMPATIBILITY SameMajorVersion) + + configure_package_config_file( + ${CMAKE_CURRENT_SOURCE_DIR}/src/Machinekit-HALConfig.cmake.in + "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/Machinekit-HALConfig.cmake" + INSTALL_DESTINATION "${MACHINEKIT_HAL_CMAKE_PACKAGE_DIRECTORY}") + + install( + FILES + "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/Machinekit-HALConfig.cmake" + "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/Machinekit-HALVersion.cmake" + DESTINATION ${MACHINEKIT_HAL_CMAKE_PACKAGE_DIRECTORY}) +endif() diff --git a/src/libraries/export_package/src/Machinekit-HALConfig.cmake.in b/src/libraries/export_package/src/Machinekit-HALConfig.cmake.in new file mode 100644 index 0000000000..49ec49b32f --- /dev/null +++ b/src/libraries/export_package/src/Machinekit-HALConfig.cmake.in @@ -0,0 +1,105 @@ +# ~~~ +# #################################################################### +# Description: CMakeLists.txt +# +# This file, 'CMakeLists.txt', implements build system +# rules for Machinekit-HAL project +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +# ##################################################################### +# ~~~ + +@PACKAGE_INIT@ + +# Set the variable prefix of this file to 'MHC_' + +cmake_policy(SET CMP0057 NEW) +cmake_policy(SET CMP0011 NEW) + +# The missing "-" in Machinekit-HAL CMake files denotes the internal scripts not +# for direct use from external projects TODO: Can this be broken from CMake +# perspective? + +file( + GLOB MHC_found_component_files + LIST_DIRECTORIES False + "${CMAKE_CURRENT_LIST_DIR}/MachinekitHAL*Component.cmake") + +# Quick bypass to avoid querying the JSON in CMake +set(MHC_known_components "") +set(MHC_components_paths "[") + +foreach(_item IN LISTS MHC_found_component_files) + # Further limit naming of the component to just [a-zA-z0-9_-] type of + # characters + if("${_item}" MATCHES "^.+/MachinekitHAL([a-zA-z0-9_-]+)Component\\.cmake$") + string(TOLOWER "${CMAKE_MATCH_1}" MHC_component_name) + if("${MHC_component_name}" IN_LIST MHC_known_components) + set(${CMAKE_FIND_PACKAGE_NAME}_FOUND False) + set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE + "Multiple files named \"${MHC_component_name}\" found!") + return() + endif() + list(APPEND MHC_known_components "${MHC_component_name}") + set(MHC_components_paths + "${MHC_components_paths} + { + \"name\" : \"${MHC_component_name}\", + \"file\" : \"${_item}\" + },") + endif() +endforeach() + +set(MHC_components_paths "${MHC_components_paths} +]") + +string(JSON MHC_component_length LENGTH "${MHC_components_paths}") +math(EXPR MHC_component_length "${MHC_component_length} - 1" + OUTPUT_FORMAT DECIMAL) + +if(NOT ${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS) + set(${CMAKE_FIND_PACKAGE_NAME}_FOUND False) + list(JOIN MHC_known_components " " MHC_known_components_set) + string(TOUPPER "${MHC_known_components_set}" MHC_known_components_set) + set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE + "${CMAKE_FIND_PACKAGE_NAME} requires at least one component specified. Known components are: ${MHC_known_components_set}" + ) + return() +endif() + +foreach(_component ${${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS}) + string(TOLOWER "${_component}" MHC_component_name) + if(NOT MHC_component_name IN_LIST MHC_known_components) + set(${CMAKE_FIND_PACKAGE_NAME}_FOUND False) + set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE + "Unsupported component: ${MHC_component}") + return() + endif() + foreach(_item RANGE 0 ${MHC_component_length} 1) + string(JSON MHC_component_path_name GET "${MHC_components_paths}" ${_item} + "name") + if("${MHC_component_path_name}" STREQUAL "${MHC_component_name}") + string(JSON MHC_component_path_file GET "${MHC_components_paths}" ${_item} + "file") + include("${MHC_component_path_file}") + set(${CMAKE_FIND_PACKAGE_NAME}_${_component}_FOUND True) + endif() + endforeach() +endforeach() + +check_required_components(${CMAKE_FIND_PACKAGE_NAME}) diff --git a/src/libraries/hal/CMakeLists.txt b/src/libraries/hal/CMakeLists.txt index d4d44bd4d6..2989d194fb 100644 --- a/src/libraries/hal/CMakeLists.txt +++ b/src/libraries/hal/CMakeLists.txt @@ -1,31 +1,33 @@ -# ############################################################################## +# ~~~ +# #################################################################### # Description: CMakeLists.txt # -# This file, 'CMakeLists.txt', implements build system rules for Machinekit-HAL -# project +# This file, 'CMakeLists.txt', implements build system +# rules for Machinekit-HAL project # # Copyright (C) 2021 Jakub FiĊĦer # -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU Lesser General Public License as published by the Free -# Software Foundation; either version 2.1 of the License, or (at your option) -# any later version. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. # -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -# details. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU Lesser General Public License along -# with this library; if not, write to the Free Software Foundation, Inc., 51 -# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # -# ############################################################################## +# ##################################################################### +# ~~~ option(BUILD_HAL_LIBRARY "Built the HAL library." TRUE) if(BUILD_HAL_LIBRARY) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_api INTERFACE) add_library(${MACHINEKIT_HAL_NAMESPACE}::hal_api ALIAS hal_api) @@ -57,24 +59,26 @@ if(BUILD_HAL_LIBRARY) set(HALPB_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/halpb.cc) + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + set(PUBLIC_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal/hal_accessor.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal/hal_accessor_macros.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal/hal_group.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal/hal.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal/hal_internal.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal/hal_iring.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal/hal_iter.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal/hal_list.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal/hal_logging.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal/hal_object.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal/hal_object_selectors.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal/halpb.hh - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal/hal_priv.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal/hal_rcomp.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal/hal_ring.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal/hal_types.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal/vtable.h) + ${PUBLIC_INCLUDE_DIRECTORY}/hal/hal_accessor.h + ${PUBLIC_INCLUDE_DIRECTORY}/hal/hal_accessor_macros.h + ${PUBLIC_INCLUDE_DIRECTORY}/hal/hal_group.h + ${PUBLIC_INCLUDE_DIRECTORY}/hal/hal.h + ${PUBLIC_INCLUDE_DIRECTORY}/hal/hal_internal.h + ${PUBLIC_INCLUDE_DIRECTORY}/hal/hal_iring.h + ${PUBLIC_INCLUDE_DIRECTORY}/hal/hal_iter.h + ${PUBLIC_INCLUDE_DIRECTORY}/hal/hal_list.h + ${PUBLIC_INCLUDE_DIRECTORY}/hal/hal_logging.h + ${PUBLIC_INCLUDE_DIRECTORY}/hal/hal_object.h + ${PUBLIC_INCLUDE_DIRECTORY}/hal/hal_object_selectors.h + ${PUBLIC_INCLUDE_DIRECTORY}/hal/halpb.hh + ${PUBLIC_INCLUDE_DIRECTORY}/hal/hal_priv.h + ${PUBLIC_INCLUDE_DIRECTORY}/hal/hal_rcomp.h + ${PUBLIC_INCLUDE_DIRECTORY}/hal/hal_ring.h + ${PUBLIC_INCLUDE_DIRECTORY}/hal/hal_types.h + ${PUBLIC_INCLUDE_DIRECTORY}/hal/vtable.h) # TODO: Filter out header files from HAL which can safely be private # set(PRIVATE_HEADER_FILES "") @@ -96,8 +100,9 @@ if(BUILD_HAL_LIBRARY) export_rtapi_symbols(TARGET hal_module) - set_target_properties(hal_api PROPERTIES PUBLIC_HEADER - "${PUBLIC_HEADER_FILES}") + set_target_properties( + hal_api PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") set_target_properties( hal @@ -114,6 +119,18 @@ if(BUILD_HAL_LIBRARY) LIBRARY_OUTPUT_DIRECTORY ${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}) + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/MachinekitHALUnmanaged-HALComponent.cmake.in + ${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALUnmanaged-HALComponent.cmake + NO_SOURCE_PERMISSIONS + @ONLY) + + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/MachinekitHALManaged-HALComponent.cmake.in + ${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALManaged-HALComponent.cmake + NO_SOURCE_PERMISSIONS + @ONLY) + install( TARGETS hal EXPORT machinekit_hal_hal @@ -169,4 +186,6 @@ if(BUILD_HAL_LIBRARY) cpack_add_component_group( MachinekitHAL_Managed_Module_HAL PARENT_GROUP MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_subdirectory(test) endif() diff --git a/src/libraries/hal/cmake/MachinekitHALManaged-HALComponent.cmake.in b/src/libraries/hal/cmake/MachinekitHALManaged-HALComponent.cmake.in new file mode 100644 index 0000000000..66d41001e6 --- /dev/null +++ b/src/libraries/hal/cmake/MachinekitHALManaged-HALComponent.cmake.in @@ -0,0 +1,77 @@ +# ~~~ +# #################################################################### +# Description: MachinekitHALMANAGED-HALComponent.cmake.in +# +# This file, 'MachinekitHALMANAGED-HALComponent.cmake.in', +# implements build system +# rules for Machinekit-HAL project +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +# ##################################################################### +# ~~~ + +# Set the variable prefix of this file to 'MHMHC_' + +set(MHMHC_targets_paths + "[ + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::hal_api\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALHALAPITarget.cmake\" + }, +]") + +set(MHMHC_components_paths + "[ + { + \"component\":\"Managed-Runtime\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALManaged-RuntimeComponent.cmake\" + }, +]") + +string(JSON MHMHC_targets_paths_length LENGTH "${MHMHC_targets_paths}") +math(EXPR MHMHC_targets_paths_length "${MHMHC_targets_paths_length} - 1" + OUTPUT_FORMAT DECIMAL) + +string(JSON MHMHC_components_paths_length LENGTH "${MHMHC_components_paths}") +math(EXPR MHMHC_components_paths_length "${MHMHC_components_paths_length} - 1" + OUTPUT_FORMAT DECIMAL) + +foreach(_index RANGE 0 ${MHMHC_components_paths_length} 1) + string(JSON MHMHC_path GET "${MHMHC_components_paths}" ${_index} "file") + if(NOT EXISTS "${MHMHC_path}") + set(${CMAKE_FIND_PACKAGE_NAME}_FOUND False) + set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE + "File \"${MHMHC_path}\" is missing!") + return() + endif() + include("${MHMHC_path}") +endforeach() + +foreach(_index RANGE 0 ${MHMHC_targets_paths_length} 1) + string(JSON MHMHC_name GET "${MHMHC_targets_paths}" ${_index} "target") + string(JSON MHMHC_path GET "${MHMHC_targets_paths}" ${_index} "file") + if(NOT EXISTS "${MHMHC_path}") + set(${CMAKE_FIND_PACKAGE_NAME}_FOUND False) + set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE + "File \"${MHMHC_path}\" is missing!") + return() + endif() + if(NOT TARGET "${MHMHC_name}") + include("${MHMHC_path}") + endif() +endforeach() diff --git a/src/libraries/hal/cmake/MachinekitHALUnmanaged-HALComponent.cmake.in b/src/libraries/hal/cmake/MachinekitHALUnmanaged-HALComponent.cmake.in new file mode 100644 index 0000000000..e13b3824ae --- /dev/null +++ b/src/libraries/hal/cmake/MachinekitHALUnmanaged-HALComponent.cmake.in @@ -0,0 +1,81 @@ +# ~~~ +# #################################################################### +# Description: MachinekitHALUNMANAGED-HALComponent.cmake.in +# +# This file, 'MachinekitHALUNMANAGED-HALComponent.cmake.in', +# implements build system +# rules for Machinekit-HAL project +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +# ##################################################################### +# ~~~ + +# Set the variable prefix of this file to 'MHUHC_' + +set(MHUHC_targets_paths + "[ + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::hal_api\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALHALAPITarget.cmake\" + }, + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::hal\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALHALTarget.cmake\" + }, +]") + +set(MHUHC_components_paths + "[ + { + \"component\":\"Unmanaged-Runtime\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALUnmanaged-RuntimeComponent.cmake\" + }, +]") + +string(JSON MHUHC_targets_paths_length LENGTH "${MHUHC_targets_paths}") +math(EXPR MHUHC_targets_paths_length "${MHUHC_targets_paths_length} - 1" + OUTPUT_FORMAT DECIMAL) + +string(JSON MHUHC_components_paths_length LENGTH "${MHUHC_components_paths}") +math(EXPR MHUHC_components_paths_length "${MHUHC_components_paths_length} - 1" + OUTPUT_FORMAT DECIMAL) + +foreach(_index RANGE 0 ${MHUHC_components_paths_length} 1) + string(JSON MHUHC_path GET "${MHUHC_components_paths}" ${_index} "file") + if(NOT EXISTS "${MHUHC_path}") + set(${CMAKE_FIND_PACKAGE_NAME}_FOUND False) + set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE + "File \"${MHUHC_path}\" is missing!") + return() + endif() + include("${MHUHC_path}") +endforeach() + +foreach(_index RANGE 0 ${MHUHC_targets_paths_length} 1) + string(JSON MHUHC_name GET "${MHUHC_targets_paths}" ${_index} "target") + string(JSON MHUHC_path GET "${MHUHC_targets_paths}" ${_index} "file") + if(NOT EXISTS "${MHUHC_path}") + set(${CMAKE_FIND_PACKAGE_NAME}_FOUND False) + set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE + "File \"${MHUHC_path}\" is missing!") + return() + endif() + if(NOT TARGET "${MHUHC_name}") + include("${MHUHC_path}") + endif() +endforeach() diff --git a/src/modules/unmanaged/components/remote/CMakeLists.txt b/src/libraries/hal/test/CMakeLists.txt similarity index 100% rename from src/modules/unmanaged/components/remote/CMakeLists.txt rename to src/libraries/hal/test/CMakeLists.txt diff --git a/src/libraries/hal_command/CMakeLists.txt b/src/libraries/hal_command/CMakeLists.txt index 0e2f8ac106..7e85a525c3 100644 --- a/src/libraries/hal_command/CMakeLists.txt +++ b/src/libraries/hal_command/CMakeLists.txt @@ -34,10 +34,13 @@ if(BUILD_HAL_COMMAND_LIBRARY) ${CMAKE_CURRENT_SOURCE_DIR}/src/halcmd_commands.c ${CMAKE_CURRENT_SOURCE_DIR}/src/halcmd.c ${CMAKE_CURRENT_SOURCE_DIR}/src/halcmd_rtapiapp.cc) + + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + set(PUBLIC_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal_command/halcmd_commands.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal_command/halcmd.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal_command/halcmd_rtapiapp.h) + ${PUBLIC_INCLUDE_DIRECTORY}/hal_command/halcmd_commands.h + ${PUBLIC_INCLUDE_DIRECTORY}/hal_command/halcmd.h + ${PUBLIC_INCLUDE_DIRECTORY}/hal_command/halcmd_rtapiapp.h) target_include_directories( hal_command @@ -72,7 +75,14 @@ if(BUILD_HAL_COMMAND_LIBRARY) PREFIX "libmkh" VERSION ${CMAKE_PROJECT_VERSION} PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" - POSITION_INDEPENDENT_CODE TRUE) + POSITION_INDEPENDENT_CODE TRUE + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") + + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/MachinekitHALHAL-CommandComponent.cmake.in + ${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALHAL-CommandComponent.cmake + NO_SOURCE_PERMISSIONS + @ONLY) install( TARGETS hal_command @@ -87,7 +97,8 @@ if(BUILD_HAL_COMMAND_LIBRARY) export( EXPORT machinekit_hal_hal_command NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALHALCommandTarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALHALCommandTarget.cmake" + ) cpack_add_component( MachinekitHAL_Library_HAL_Command_Libraries diff --git a/src/libraries/hal_command/cmake/MachinekitHALHAL-CommandComponent.cmake.in b/src/libraries/hal_command/cmake/MachinekitHALHAL-CommandComponent.cmake.in new file mode 100644 index 0000000000..944f70f9fa --- /dev/null +++ b/src/libraries/hal_command/cmake/MachinekitHALHAL-CommandComponent.cmake.in @@ -0,0 +1,77 @@ +# ~~~ +# #################################################################### +# Description: MachinekitHALMANAGED-HALComponent.cmake.in +# +# This file, 'MachinekitHALMANAGED-HALComponent.cmake.in', +# implements build system +# rules for Machinekit-HAL project +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +# ##################################################################### +# ~~~ + +# Set the variable prefix of this file to 'MHHCC_' + +set(MHHCC_targets_paths + "[ + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::hal_command\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALHALCommandTarget.cmake\" + }, +]") + +set(MHHCC_components_paths + "[ + { + \"component\":\"Unmanaged-HAL\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALUnmanaged-HALComponent.cmake\" + }, +]") + +string(JSON MHHCC_targets_paths_length LENGTH "${MHHCC_targets_paths}") +math(EXPR MHHCC_targets_paths_length "${MHHCC_targets_paths_length} - 1" + OUTPUT_FORMAT DECIMAL) + +string(JSON MHHCC_components_paths_length LENGTH "${MHHCC_components_paths}") +math(EXPR MHHCC_components_paths_length "${MHHCC_components_paths_length} - 1" + OUTPUT_FORMAT DECIMAL) + +foreach(_index RANGE 0 ${MHHCC_components_paths_length} 1) + string(JSON MHHCC_path GET "${MHHCC_components_paths}" ${_index} "file") + if(NOT EXISTS "${MHHCC_path}") + set(${CMAKE_FIND_PACKAGE_NAME}_FOUND False) + set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE + "File \"${MHHCC_path}\" is missing!") + return() + endif() + include("${MHHCC_path}") +endforeach() + +foreach(_index RANGE 0 ${MHHCC_targets_paths_length} 1) + string(JSON MHHCC_name GET "${MHHCC_targets_paths}" ${_index} "target") + string(JSON MHHCC_path GET "${MHHCC_targets_paths}" ${_index} "file") + if(NOT EXISTS "${MHHCC_path}") + set(${CMAKE_FIND_PACKAGE_NAME}_FOUND False) + set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE + "File \"${MHHCC_path}\" is missing!") + return() + endif() + if(NOT TARGET "${MHHCC_name}") + include("${MHHCC_path}") + endif() +endforeach() diff --git a/src/libraries/hal_glib/CMakeLists.txt b/src/libraries/hal_glib/CMakeLists.txt index 582769d70b..990a140ae2 100644 --- a/src/libraries/hal_glib/CMakeLists.txt +++ b/src/libraries/hal_glib/CMakeLists.txt @@ -62,17 +62,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_glib.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_glib.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Library_HAL_GLIB_Python_Packages) diff --git a/src/libraries/hal_parport/CMakeLists.txt b/src/libraries/hal_parport/CMakeLists.txt index a65b4bed2c..b6ac84c415 100644 --- a/src/libraries/hal_parport/CMakeLists.txt +++ b/src/libraries/hal_parport/CMakeLists.txt @@ -37,13 +37,16 @@ if(SYS_IO_AVAILABLE) # better/more descriptive name add_library(rtapi_parport INTERFACE) - set(PUBLIC_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/hal_parport/hal_parport.h) + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + + set(PUBLIC_HEADER_FILES ${PUBLIC_INCLUDE_DIRECTORY}/hal_parport/hal_parport.h) target_include_directories(rtapi_parport INTERFACE include) - set_target_properties(rtapi_parport PROPERTIES PUBLIC_HEADER - "${PUBLIC_HEADER_FILES}") + set_target_properties( + rtapi_parport + PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") install( TARGETS rtapi_parport @@ -55,7 +58,8 @@ if(SYS_IO_AVAILABLE) export( EXPORT machinekit_hal_hal_parport NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALHALParportTarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALHALParportTarget.cmake" + ) cpack_add_component(MachinekitHAL_Library_HAL_Parport_Headers GROUP MachinekitHAL_Library_HAL_Parport_Development) diff --git a/src/libraries/halfile/CMakeLists.txt b/src/libraries/halfile/CMakeLists.txt index 7a21affcf0..ddf640fda3 100644 --- a/src/libraries/halfile/CMakeLists.txt +++ b/src/libraries/halfile/CMakeLists.txt @@ -62,17 +62,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/halfile.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/halfile.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Library_HALFile_Python_Packages) diff --git a/src/libraries/halscope_memory/CMakeLists.txt b/src/libraries/halscope_memory/CMakeLists.txt index da252236f0..682c71c54d 100644 --- a/src/libraries/halscope_memory/CMakeLists.txt +++ b/src/libraries/halscope_memory/CMakeLists.txt @@ -31,16 +31,20 @@ if(BUILD_HALSCOPE_MEMORY_LIBRARY) add_library(${MACHINEKIT_HAL_NAMESPACE}::halscope_memory ALIAS halscope_memory) + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + set(PUBLIC_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/halscope_memory/scope_shm.h) + ${PUBLIC_INCLUDE_DIRECTORY}/halscope_memory/scope_shm.h) target_include_directories( halscope_memory INTERFACE $ $) - set_target_properties(halscope_memory PROPERTIES PUBLIC_HEADER - "${PUBLIC_HEADER_FILES}") + set_target_properties( + halscope_memory + PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") install( TARGETS halscope_memory @@ -52,7 +56,8 @@ if(BUILD_HALSCOPE_MEMORY_LIBRARY) export( EXPORT machinekit_hal_halscope_memory NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALHALScopeMemoryTarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALHALScopeMemoryTarget.cmake" + ) cpack_add_component(MachinekitHAL_Library_HALscope_Memory_Headers GROUP MachinekitHAL_Library_HALscope_Memory_Development) diff --git a/src/libraries/hostmot2_bitfile/CMakeLists.txt b/src/libraries/hostmot2_bitfile/CMakeLists.txt index 7952654e58..dedacea739 100644 --- a/src/libraries/hostmot2_bitfile/CMakeLists.txt +++ b/src/libraries/hostmot2_bitfile/CMakeLists.txt @@ -33,8 +33,10 @@ if(BUILD_HOSTMOT2_BITFILE_LIBRARY) hostmot2_bitfile) set(SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/bitfile.c) - set(PUBLIC_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/hostmot2/bitfile.h) + + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + + set(PUBLIC_HEADER_FILES ${PUBLIC_INCLUDE_DIRECTORY}/hostmot2/bitfile.h) target_sources( hostmot2_bitfile @@ -43,7 +45,7 @@ if(BUILD_HOSTMOT2_BITFILE_LIBRARY) target_include_directories( hostmot2_bitfile - PUBLIC $ + PUBLIC $ $) target_link_libraries( @@ -58,7 +60,8 @@ if(BUILD_HOSTMOT2_BITFILE_LIBRARY) PROPERTIES SOVERSION 0 PREFIX "libmkh" VERSION ${CMAKE_PROJECT_VERSION} - PUBLIC_HEADER "${PUBLIC_HEADER_FILES}") + PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") install( TARGETS hostmot2_bitfile diff --git a/src/libraries/launcher/CMakeLists.txt b/src/libraries/launcher/CMakeLists.txt index 02904329e2..95fcd2d4bd 100644 --- a/src/libraries/launcher/CMakeLists.txt +++ b/src/libraries/launcher/CMakeLists.txt @@ -62,17 +62,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/launcher.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/launcher.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Library_Launcher_Python_Packages) diff --git a/src/libraries/linux_event/CMakeLists.txt b/src/libraries/linux_event/CMakeLists.txt index 3a3c37b7e4..d4dcf0d511 100644 --- a/src/libraries/linux_event/CMakeLists.txt +++ b/src/libraries/linux_event/CMakeLists.txt @@ -62,17 +62,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/linux_event.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/linux_event.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Library_Linux_Event_Python_Packages) diff --git a/src/libraries/machinetalk/CMakeLists.txt b/src/libraries/machinetalk/CMakeLists.txt index bb2b097931..8fcc8b88f9 100644 --- a/src/libraries/machinetalk/CMakeLists.txt +++ b/src/libraries/machinetalk/CMakeLists.txt @@ -42,20 +42,22 @@ if(BUILD_MACHINETALK_LIBRARY) ${CMAKE_CURRENT_SOURCE_DIR}/src/setup_signals.c ${CMAKE_CURRENT_SOURCE_DIR}/src/zeroconf_resolve.cc) + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + set(PUBLIC_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/machinetalk/bin2ascii.hh - ${CMAKE_CURRENT_SOURCE_DIR}/include/machinetalk/container.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/machinetalk/czmq-watch.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/machinetalk/inihelp.hh - ${CMAKE_CURRENT_SOURCE_DIR}/include/machinetalk/json2pb.hh - ${CMAKE_CURRENT_SOURCE_DIR}/include/machinetalk/ll-zeroconf.hh - ${CMAKE_CURRENT_SOURCE_DIR}/include/machinetalk/mk-backtrace.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/machinetalk/mk-service.hh - ${CMAKE_CURRENT_SOURCE_DIR}/include/machinetalk/mk-zeroconf.hh - ${CMAKE_CURRENT_SOURCE_DIR}/include/machinetalk/mk-zeroconf-types.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/machinetalk/pb-hal.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/machinetalk/pbutil.hh - ${CMAKE_CURRENT_SOURCE_DIR}/include/machinetalk/setup_signals.h) + ${PUBLIC_INCLUDE_DIRECTORY}/machinetalk/bin2ascii.hh + ${PUBLIC_INCLUDE_DIRECTORY}/machinetalk/container.h + ${PUBLIC_INCLUDE_DIRECTORY}/machinetalk/czmq-watch.h + ${PUBLIC_INCLUDE_DIRECTORY}/machinetalk/inihelp.hh + ${PUBLIC_INCLUDE_DIRECTORY}/machinetalk/json2pb.hh + ${PUBLIC_INCLUDE_DIRECTORY}/machinetalk/ll-zeroconf.hh + ${PUBLIC_INCLUDE_DIRECTORY}/machinetalk/mk-backtrace.h + ${PUBLIC_INCLUDE_DIRECTORY}/machinetalk/mk-service.hh + ${PUBLIC_INCLUDE_DIRECTORY}/machinetalk/mk-zeroconf.hh + ${PUBLIC_INCLUDE_DIRECTORY}/machinetalk/mk-zeroconf-types.h + ${PUBLIC_INCLUDE_DIRECTORY}/machinetalk/pb-hal.h + ${PUBLIC_INCLUDE_DIRECTORY}/machinetalk/pbutil.hh + ${PUBLIC_INCLUDE_DIRECTORY}/machinetalk/setup_signals.h) target_sources(machinetalk PRIVATE ${SOURCE_FILES} ${PUBLIC_HEADER_FILES}) @@ -79,7 +81,7 @@ if(BUILD_MACHINETALK_LIBRARY) target_include_directories( machinetalk - PUBLIC $ + PUBLIC $ $) target_compile_definitions(machinetalk PRIVATE "PB_FIELD_32BIT") @@ -90,7 +92,8 @@ if(BUILD_MACHINETALK_LIBRARY) PREFIX "libmkh" VERSION ${CMAKE_PROJECT_VERSION} PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" - POSITION_INDEPENDENT_CODE TRUE) + POSITION_INDEPENDENT_CODE TRUE + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") install( TARGETS machinetalk @@ -105,7 +108,8 @@ if(BUILD_MACHINETALK_LIBRARY) export( EXPORT machinekit_hal_machinetalk NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALMachinetalkTarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALMachinetalkTarget.cmake" + ) cpack_add_component( MachinekitHAL_Library_Machinetalk_Libraries diff --git a/src/libraries/mcp23017/CMakeLists.txt b/src/libraries/mcp23017/CMakeLists.txt index 71818f22ee..d35a10dbff 100644 --- a/src/libraries/mcp23017/CMakeLists.txt +++ b/src/libraries/mcp23017/CMakeLists.txt @@ -62,17 +62,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/MCP23017.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/MCP23017.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Library_MCP23017_Python_Packages) diff --git a/src/libraries/misc_gtk/CMakeLists.txt b/src/libraries/misc_gtk/CMakeLists.txt index f24f75953f..b0a58bb9e1 100644 --- a/src/libraries/misc_gtk/CMakeLists.txt +++ b/src/libraries/misc_gtk/CMakeLists.txt @@ -31,13 +31,15 @@ if(BUILD_MISC_GTK_LIBRARY) add_library(${MACHINEKIT_HAL_NAMESPACE}::miscgtk ALIAS miscgtk) set(SOURCE_FILES src/miscgtk.c) - set(PUBLIC_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/misc_gtk/miscgtk.h) + + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + + set(PUBLIC_HEADER_FILES ${PUBLIC_INCLUDE_DIRECTORY}/misc_gtk/miscgtk.h) target_sources(miscgtk PRIVATE ${SOURCE_FILES} ${PUBLIC_HEADER_FILES}) target_include_directories( - miscgtk PUBLIC $) + miscgtk PUBLIC $) pkg_check_modules(GTK "gtk+-2.0" REQUIRED IMPORTED_TARGET) @@ -49,7 +51,8 @@ if(BUILD_MISC_GTK_LIBRARY) PREFIX "libmkh" VERSION ${CMAKE_PROJECT_VERSION} RUNTIME_OUTPUT_DIRECTORY "${CMAKE_INSTALL_LIBDIR}" - PUBLIC_HEADER "${PUBLIC_HEADER_FILES}") + PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") install( TARGETS miscgtk @@ -63,7 +66,8 @@ if(BUILD_MISC_GTK_LIBRARY) export( EXPORT machinekit_hal_misc_gtk NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALMiscGTKTarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALMiscGTKTarget.cmake" + ) cpack_add_component(MachinekitHAL_Library_Misc_GTK_Libraries GROUP MachinekitHAL_Library_Misc_GTK) diff --git a/src/libraries/mkini/CMakeLists.txt b/src/libraries/mkini/CMakeLists.txt index dfcc329251..c0a372cc21 100644 --- a/src/libraries/mkini/CMakeLists.txt +++ b/src/libraries/mkini/CMakeLists.txt @@ -31,9 +31,11 @@ if(BUILD_MKINI_LIBRARY) add_library(${MACHINEKIT_HAL_NAMESPACE}::mkini ALIAS mkini) set(SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/inifile.cc) - set(PUBLIC_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/mkini/mk-inifile.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/mkini/mk-inifile.hh) + + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + + set(PUBLIC_HEADER_FILES ${PUBLIC_INCLUDE_DIRECTORY}/mkini/mk-inifile.h + ${PUBLIC_INCLUDE_DIRECTORY}/mkini/mk-inifile.hh) target_sources(mkini PRIVATE ${SOURCE_FILES} ${PUBLIC_HEADER_FILES}) @@ -41,7 +43,7 @@ if(BUILD_MKINI_LIBRARY) target_link_libraries(mkini PRIVATE runtime_api) target_include_directories( - mkini PUBLIC $ + mkini PUBLIC $ $) set_target_properties( @@ -50,7 +52,8 @@ if(BUILD_MKINI_LIBRARY) PREFIX "libmkh" VERSION ${CMAKE_PROJECT_VERSION} PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" - POSITION_INDEPENDENT_CODE TRUE) + POSITION_INDEPENDENT_CODE TRUE + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") install( TARGETS mkini EXPORT machinekit_hal_mkini @@ -63,7 +66,8 @@ if(BUILD_MKINI_LIBRARY) export( EXPORT machinekit_hal_mkini NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALMKIniTarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALMKIniTarget.cmake" + ) cpack_add_component(MachinekitHAL_Library_MKini_Libraries GROUP MachinekitHAL_Library_MKini) diff --git a/src/libraries/nanopb/CMakeLists.txt b/src/libraries/nanopb/CMakeLists.txt index b7bd0bd346..f444b93dd9 100644 --- a/src/libraries/nanopb/CMakeLists.txt +++ b/src/libraries/nanopb/CMakeLists.txt @@ -91,12 +91,14 @@ set_target_properties(protobuf-nanopb-static export( TARGETS nanopb_interface NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALNanoPBInterfaceTarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALNanoPBInterfaceTarget.cmake" +) export( TARGETS nanopb_proto_cc NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALNanoPBProtoCCTarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALNanoPBProtoCCTarget.cmake" +) export( TARGETS protobuf-nanopb-static diff --git a/src/libraries/pb2json/CMakeLists.txt b/src/libraries/pb2json/CMakeLists.txt index 97ec42c9f6..13698b3148 100644 --- a/src/libraries/pb2json/CMakeLists.txt +++ b/src/libraries/pb2json/CMakeLists.txt @@ -62,17 +62,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/pb2json.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/pb2json.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Library_PB2JSON_Python_Packages) diff --git a/src/libraries/pca9685/CMakeLists.txt b/src/libraries/pca9685/CMakeLists.txt index de981ac3b2..25290132a3 100644 --- a/src/libraries/pca9685/CMakeLists.txt +++ b/src/libraries/pca9685/CMakeLists.txt @@ -62,17 +62,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/PCA9685.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/PCA9685.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Library_PCA9685_Python_Packages) diff --git a/src/libraries/pru_app_loader/CMakeLists.txt b/src/libraries/pru_app_loader/CMakeLists.txt index ea37992904..f21ac30df8 100644 --- a/src/libraries/pru_app_loader/CMakeLists.txt +++ b/src/libraries/pru_app_loader/CMakeLists.txt @@ -34,17 +34,19 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") set(SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/prussdrv.c) + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + set(PUBLIC_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/pru_app_loader/__prussdrv.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/pru_app_loader/pruss_intc_mapping.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/pru_app_loader/prussdrv.h) + ${PUBLIC_INCLUDE_DIRECTORY}/pru_app_loader/__prussdrv.h + ${PUBLIC_INCLUDE_DIRECTORY}/pru_app_loader/pruss_intc_mapping.h + ${PUBLIC_INCLUDE_DIRECTORY}/pru_app_loader/prussdrv.h) target_sources(pru_app_loader PRIVATE ${SOURCE_FILES} ${PUBLIC_HEADER_FILES}) target_include_directories( pru_app_loader - PUBLIC $ + PUBLIC $ $) target_link_libraries(pru_app_loader PRIVATE runtime_api runtime_config) @@ -57,7 +59,8 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") PREFIX "libmkh" VERSION ${CMAKE_PROJECT_VERSION} PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" - POSITION_INDEPENDENT_CODE TRUE) + POSITION_INDEPENDENT_CODE TRUE + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") install( TARGETS pru_app_loader EXPORT machinekit_hal_pru_app_loader @@ -71,7 +74,8 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") export( EXPORT machinekit_hal_pru_app_loader NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALPRUAppLoaderTarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALPRUAppLoaderTarget.cmake" + ) cpack_add_component(MachinekitHAL_Library_PRU_App_Loader_Libraries GROUP MachinekitHAL_Library_PRU_App_Loader) diff --git a/src/libraries/pru_defines/CMakeLists.txt b/src/libraries/pru_defines/CMakeLists.txt index f990e1b0a8..565f33a912 100644 --- a/src/libraries/pru_defines/CMakeLists.txt +++ b/src/libraries/pru_defines/CMakeLists.txt @@ -30,18 +30,21 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") if(BUILD_PRU_DEFINES_LIBRARY) add_library(pru_defines INTERFACE) - set(PUBLIC_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/pru_defines/pru.h) + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + + set(PUBLIC_HEADER_FILES ${PUBLIC_INCLUDE_DIRECTORY}/pru_defines/pru.h) # TODO: How to integrate the 'pru_macros.hp' file? target_include_directories( pru_defines - INTERFACE $ + INTERFACE $ $) - set_target_properties(pru_defines PROPERTIES PUBLIC_HEADER - "${PUBLIC_HEADER_FILES}") + set_target_properties( + pru_defines + PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") install( TARGETS pru_defines @@ -56,7 +59,8 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") export( EXPORT machinekit_hal_pru_defines NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALPRUDefinesTarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALPRUDefinesTarget.cmake" + ) # Specification of artifacts placement in package tree cpack_add_component_group( diff --git a/src/libraries/pyhalmodule/CMakeLists.txt b/src/libraries/pyhalmodule/CMakeLists.txt index 659ef8cc8a..c6c74dffa0 100644 --- a/src/libraries/pyhalmodule/CMakeLists.txt +++ b/src/libraries/pyhalmodule/CMakeLists.txt @@ -40,8 +40,7 @@ if(BUILD_PYTHON_DISTRIBUTIONS) # Files representing the Python package set(PYHAL_MODULE_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/halmodule.cc) - set(HAL_PYTHON_MODULE ${CMAKE_CURRENT_SOURCE_DIR}/src/hal.py) - # set(PYTHON_INIT ${CMAKE_CURRENT_SOURCE_DIR}/src/__init__.py) + set(PYTHON_INIT ${CMAKE_CURRENT_SOURCE_DIR}/src/__init__.py) set(PYTHON_PDM_BUILD ${CMAKE_CURRENT_SOURCE_DIR}/src/build.py) set(PYHAL_MODULE_CMAKELISTS ${CMAKE_CURRENT_SOURCE_DIR}/src/CMakeLists.txt.in) @@ -52,11 +51,11 @@ if(BUILD_PYTHON_DISTRIBUTIONS) file(REMOVE_RECURSE ${CMAKE_CURRENT_BINARY_DIR}/${DISTRIBUTION_NORMALIZED_NAME}) - #[[configure_file( + configure_file( ${PYTHON_INIT} ${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py COPYONLY - NO_SOURCE_PERMISSIONS)]] + NO_SOURCE_PERMISSIONS) configure_file(${PYTHON_PDM_BUILD} ${PACKAGE_NAME}/build.py COPYONLY NO_SOURCE_PERMISSIONS) configure_file( @@ -64,27 +63,85 @@ if(BUILD_PYTHON_DISTRIBUTIONS) ${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/halmodule.cc COPYONLY NO_SOURCE_PERMISSIONS) - configure_file( - ${HAL_PYTHON_MODULE} - ${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal.py - COPYONLY - NO_SOURCE_PERMISSIONS) configure_file(${PYHAL_MODULE_CMAKELISTS} ${PACKAGE_NAME}/CMakeLists.txt @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + if(PYTHON_PLAT_NAME) + set(_python_plat_name + "--config-setting=\"--plat-name=${PYTHON_PLAT_NAME}\"") + else() + set(_python_plat_name "") # Make sure it is empty + endif() + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS - # ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/halmodule.cc ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + # TODO: This is hackins approach to solve issue with building multiple CONFIGS: + # Each config build is separated and because the wheel build uses an isolated + # environment, the paths to executables (python, pip etc.) are stored in CMake + # cache during generation. Second (et al) builds then try to reuse the first + # generation and fails because the temporary environment from the first run no + # longer exists + # This will need a rework as it should use its own manual isolation (for Debian + # and other distros because they require it) and generally to keep the build + # files for possibility of post-mortem + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/build" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" + "MACHINEKIT_HAL_BUILD_CONFIG=$" "${PYPROJECT_BUILD}" "-w" "-o" + "${OUTPUT_INDEX}" "${_python_plat_name}" + "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/halmodule.cc + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${_python_plat_name}" + "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) + + add_dependencies(${DISTRIBUTION_NAME}_wheel_distribution hal) + add_dependencies(${DISTRIBUTION_NAME}_sdist_distribution hal) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Library_PyHAL_Module_Python_Packages) diff --git a/src/libraries/pyhalmodule/src/CMakeLists.txt.in b/src/libraries/pyhalmodule/src/CMakeLists.txt.in index 967b6ce9fa..9df03744bc 100644 --- a/src/libraries/pyhalmodule/src/CMakeLists.txt.in +++ b/src/libraries/pyhalmodule/src/CMakeLists.txt.in @@ -24,13 +24,13 @@ # ##################################################################### # ~~~ -cmake_minimum_required(VERSION 3.21) +cmake_minimum_required(VERSION 3.22) project( PyHALModule VERSION @CMAKE_PROJECT_VERSION@ DESCRIPTION - "Python C extensiom module for Machinekit-HAL Hardware Abstraction Layer." + "Python C extension module for Machinekit-HAL Hardware Abstraction Layer." HOMEPAGE_URL "https://machinekit.io" LANGUAGES CXX) @@ -42,23 +42,30 @@ set(CMAKE_C_EXTENSIONS FALSE) set(CMAKE_CXX_EXTENSIONS FALSE) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) -include(GNUInstallDirs) - set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) find_package( - Python3 - COMPONENTS Interpreter Development.Module + Python 3.6...4.0 + COMPONENTS Development REQUIRED) -find_package(Runtime REQUIRED) -find_package(HAL REQUIRED) -find_package(RuntimeConfig REQUIRED) +find_package( + Machinekit-HAL + COMPONENTS Unmanaged-HAL + REQUIRED) -python3_add_library( - pyhal MODULE WITH_SOABI - ${CMAKE_CURRENT_SOURCE_DIR}/src/machinekit/hal/pyhal/halmodule.cc) +set(SOURCE_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/src/machinekit/hal/pyhal/halmodule.cc) + +python_add_library(pyhal MODULE WITH_SOABI ${SOURCE_FILES}) target_link_libraries( pyhal PUBLIC Machinekit::HAL::hal Machinekit::HAL::runtime Machinekit::HAL::runtime_config) + +install( + TARGETS pyhal + LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX} + ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX} + RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_PREFIX}) diff --git a/src/libraries/pyhalmodule/src/hal.py b/src/libraries/pyhalmodule/src/__init__.py similarity index 96% rename from src/libraries/pyhalmodule/src/hal.py rename to src/libraries/pyhalmodule/src/__init__.py index af9b4af6e3..8f8d53c439 100644 --- a/src/libraries/pyhalmodule/src/hal.py +++ b/src/libraries/pyhalmodule/src/__init__.py @@ -1,6 +1,3 @@ -#!/usr/bin/env python3 -# vim: sts=4 sw=4 et - """ This module allows the creation of userspace HAL components in Python. @@ -27,8 +24,8 @@ KeyboardInterrupt exception will be raised. """ -import _hal -from _hal import * +import machinekit.hal.pyhal.pyhal as _hal +from .pyhal import * class _ItemWrap(object): def __new__(cls, item): diff --git a/src/libraries/pyhalmodule/src/build.py b/src/libraries/pyhalmodule/src/build.py index ccb7097cbe..74cc6e5762 100644 --- a/src/libraries/pyhalmodule/src/build.py +++ b/src/libraries/pyhalmodule/src/build.py @@ -13,14 +13,18 @@ CMAKE_CONFIGURE_EXTENSION_OPTIONS.append( f"-DCMAKE_PREFIX_PATH={os.environ['CMAKE_PREFIX_PATH']}") +if "CMAKE_TOOLCHAIN_FILE" in os.environ and os.environ["CMAKE_TOOLCHAIN_FILE"]: + CMAKE_CONFIGURE_EXTENSION_OPTIONS.append( + f"--toolchain={os.environ['CMAKE_TOOLCHAIN_FILE']}") + ext_modules = [ cmake_build_extension.CMakeExtension(name='pyhal', install_prefix="machinekit/hal/pyhal", source_dir=str( pathlib.Path(__file__).absolute().parent), + cmake_build_type=os.environ.get( + "MACHINEKIT_HAL_BUILD_CONFIG", "Release"), cmake_configure_options=[ - f"-DPython3_ROOT_DIR={pathlib.Path(sys.prefix)}", - "-DCALL_FROM_SETUP_PY:BOOL=TRUE", "-DBUILD_SHARED_LIBS:BOOL=FALSE", ] + CMAKE_CONFIGURE_EXTENSION_OPTIONS ) diff --git a/src/libraries/pyhalmodule/src/halmodule.cc b/src/libraries/pyhalmodule/src/halmodule.cc index a4403ea26c..d9b777a778 100644 --- a/src/libraries/pyhalmodule/src/halmodule.cc +++ b/src/libraries/pyhalmodule/src/halmodule.cc @@ -1306,13 +1306,13 @@ const char *module_doc = "Interface to hal\n" static struct PyModuleDef hal_moduledef = { PyModuleDef_HEAD_INIT, /* m_base */ - "_hal", /* m_name */ + "pyhal", /* m_name */ module_doc, /* m_doc */ -1, /* m_size */ module_methods /* m_methods */ }; -PyMODINIT_FUNC PyInit__hal(void) +PyMODINIT_FUNC PyInit_pyhal(void) { PyObject *m = PyModule_Create(&hal_moduledef); diff --git a/src/libraries/pyhalmodule/src/pyproject.toml.in b/src/libraries/pyhalmodule/src/pyproject.toml.in index 4be091a70e..4773730dae 100644 --- a/src/libraries/pyhalmodule/src/pyproject.toml.in +++ b/src/libraries/pyhalmodule/src/pyproject.toml.in @@ -48,9 +48,10 @@ repository = "https://github.com/machinekit/machinekit-hal" includes = [ "src/machinekit", ] +source-includes = ["CMakeLists.txt", "src/**/*.cc"] package-dir = "src" build = "build.py" [build-system] -requires = ["pdm-pep517", "setuptools", "cmake", "cmake_build_extension"] +requires = ["pdm-pep517", "setuptools", "cmake", "cmake_build_extension", "ninja"] build-backend = "pdm.pep517.api" \ No newline at end of file diff --git a/src/libraries/raspi_cpuinfo/CMakeLists.txt b/src/libraries/raspi_cpuinfo/CMakeLists.txt index def6235199..3ccf8047eb 100644 --- a/src/libraries/raspi_cpuinfo/CMakeLists.txt +++ b/src/libraries/raspi_cpuinfo/CMakeLists.txt @@ -34,21 +34,23 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") set(SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/cpuinfo.c) - set(PUBLIC_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/raspi_cpuinfo/cpuinfo.h) + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + + set(PUBLIC_HEADER_FILES ${PUBLIC_INCLUDE_DIRECTORY}/raspi_cpuinfo/cpuinfo.h) target_sources(raspi_cpuinfo PRIVATE ${SOURCE_FILES} ${PUBLIC_HEADER_FILES}) target_include_directories( raspi_cpuinfo - PUBLIC $ + PUBLIC $ $) set_target_properties( raspi_cpuinfo PROPERTIES PREFIX "libmkh" PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" - POSITION_INDEPENDENT_CODE TRUE) + POSITION_INDEPENDENT_CODE TRUE + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") install( TARGETS raspi_cpuinfo EXPORT machinekit_hal_raspi_cpuinfo @@ -61,7 +63,8 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") export( EXPORT machinekit_hal_raspi_cpuinfo NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALRaspiCPUInfoTarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALRaspiCPUInfoTarget.cmake" + ) cpack_add_component(MachinekitHAL_Library_RasPi_CPUInfo_Archives GROUP MachinekitHAL_Library_RasPi_CPUInfo_Development) diff --git a/src/libraries/rtapi_compat/CMakeLists.txt b/src/libraries/rtapi_compat/CMakeLists.txt index d4d9d30c93..7e34dba39c 100644 --- a/src/libraries/rtapi_compat/CMakeLists.txt +++ b/src/libraries/rtapi_compat/CMakeLists.txt @@ -32,18 +32,24 @@ add_library(rtapi_compat INTERFACE) set(SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/rtapi_compat.c") -set(PUBLIC_HEADER_FILES - "${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_compat.h") + +set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + +set(PUBLIC_HEADER_FILES "${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_compat.h") target_sources(rtapi_compat INTERFACE ${SOURCE_FILES} ${PUBLIC_HEADER_FILES}) target_include_directories( rtapi_compat - INTERFACE $ + INTERFACE $ $) -set_target_properties(rtapi_compat PROPERTIES PUBLIC_HEADER - "${PUBLIC_HEADER_FILES}") + target_link_libraries(rtapi_compat INTERFACE mkini) + +set_target_properties( + rtapi_compat + PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") install( TARGETS rtapi_compat EXPORT machinekit_hal_rtapi_compat @@ -53,7 +59,8 @@ install( export( EXPORT machinekit_hal_rtapi_compat NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALRuntimeCompatTarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALRuntimeCompatTarget.cmake" +) cpack_add_component(MachinekitHAL_Library_RTAPI_Compat_Headers GROUP MachinekitHAL_Library_RTAPI_Compat_Development) diff --git a/src/libraries/rtapi_pci/CMakeLists.txt b/src/libraries/rtapi_pci/CMakeLists.txt index 883411911d..ba21f19abb 100644 --- a/src/libraries/rtapi_pci/CMakeLists.txt +++ b/src/libraries/rtapi_pci/CMakeLists.txt @@ -30,18 +30,21 @@ if(BUILD_RTAPI_PCI_LIBRARY) add_library(rtapi_pci INTERFACE) set(SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/rtapi_pci.c) - set(PUBLIC_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_pci.h) + + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + + set(PUBLIC_HEADER_FILES ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_pci.h) target_sources(rtapi_pci INTERFACE ${SOURCE_FILES} ${PUBLIC_HEADER_FILES}) target_include_directories( rtapi_pci - INTERFACE $ + INTERFACE $ $) - set_target_properties(rtapi_pci PROPERTIES PUBLIC_HEADER - "${PUBLIC_HEADER_FILES}") + set_target_properties( + rtapi_pci PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") install( TARGETS rtapi_pci @@ -52,7 +55,8 @@ if(BUILD_RTAPI_PCI_LIBRARY) export( EXPORT machinekit_hal_rtapi_pci NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALRTAPIPCITarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALRTAPIPCITarget.cmake" + ) cpack_add_component(MachinekitHAL_Library_RTAPI_PCI_Headers GROUP MachinekitHAL_Library_RTAPI_PCI_Development) diff --git a/src/libraries/runtime/CMakeLists.txt b/src/libraries/runtime/CMakeLists.txt index 9626c5a1bc..8e06600052 100644 --- a/src/libraries/runtime/CMakeLists.txt +++ b/src/libraries/runtime/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_RUNTIME_LIBRARY "Built the Runtime libraries." TRUE) if(BUILD_RUNTIME_LIBRARY) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) if(NOT DEFINED SYS_IO_AVAILABLE) check_include_files("sys/io.h" SYS_IO_AVAILABLE) @@ -58,35 +58,36 @@ if(BUILD_RUNTIME_LIBRARY) set(RT_PREEMPT_FLAVOR_SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/src/rt-preempt.c) + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + set(PUBLIC_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/multiframe_flag.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/multiframe.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/ring.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_app.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_atomics.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_bitops.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_bool.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_common.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_errno.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_exception.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_export.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_flavor.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_global.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_heap.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_heap_private.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_hexdump.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_int.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_limits.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_mbarrier.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_mutex.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_shmkeys.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_stdint.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_string.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/triple-buffer.h) - - set(RTAPI_IO_PUBLIC_HEADER - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_io.h) + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/multiframe_flag.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/multiframe.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/ring.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_app.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_atomics.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_bitops.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_bool.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_common.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_errno.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_exception.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_export.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_flavor.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_global.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_heap.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_heap_private.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_hexdump.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_int.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_limits.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_mbarrier.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_mutex.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_shmkeys.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_stdint.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_string.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/triple-buffer.h) + + set(RTAPI_IO_PUBLIC_HEADER ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_io.h) set(PRIVATE_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/ulapi.h @@ -96,7 +97,7 @@ if(BUILD_RUNTIME_LIBRARY) target_include_directories( runtime_api INTERFACE - $ + $ $ $> $> @@ -150,8 +151,10 @@ if(BUILD_RUNTIME_LIBRARY) export_rtapi_symbols(TARGET runtime_module) - set_target_properties(runtime_api PROPERTIES PUBLIC_HEADER - "${PUBLIC_HEADER_FILES}") + set_target_properties( + runtime_api + PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") set_target_properties( runtime @@ -248,14 +251,14 @@ if(BUILD_RUNTIME_LIBRARY) NEWLINE_STYLE UNIX FILE_PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/MachinekitHALUNMANAGED-RuntimeComponent.cmake.in - ${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALUNMANAGED-RuntimeComponent.cmake + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/MachinekitHALUnmanaged-RuntimeComponent.cmake.in + ${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALUnmanaged-RuntimeComponent.cmake NO_SOURCE_PERMISSIONS @ONLY) configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/MachinekitHALMANAGED-RuntimeComponent.cmake.in - ${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALMANAGED-RuntimeComponent.cmake + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/MachinekitHALManaged-RuntimeComponent.cmake.in + ${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALManaged-RuntimeComponent.cmake NO_SOURCE_PERMISSIONS @ONLY) diff --git a/src/libraries/runtime/cmake/MachinekitHALManaged-RuntimeComponent.cmake.in b/src/libraries/runtime/cmake/MachinekitHALManaged-RuntimeComponent.cmake.in new file mode 100644 index 0000000000..f9dce9cf84 --- /dev/null +++ b/src/libraries/runtime/cmake/MachinekitHALManaged-RuntimeComponent.cmake.in @@ -0,0 +1,79 @@ +# ~~~ +# #################################################################### +# Description: MachinekitHALMANAGED-HALComponent.cmake.in +# +# This file, 'MachinekitHALMANAGED-HALComponent.cmake.in', +# implements build system +# rules for Machinekit-HAL project +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +# ##################################################################### +# ~~~ + +# Set the variable prefix of this file to 'MHMRC_' + +set(MHMRC_targets_paths + "[ + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::runtime_config\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALRuntimeConfigTarget.cmake\" + }, + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::rtapi_pci\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALRTAPIPCITarget.cmake\" + }, + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::mkini\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALMKIniTarget.cmake\" + }, + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::rtapi_compat\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALRuntimeCompatTarget.cmake\" + }, + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::hal_api\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALHALAPITarget.cmake\" + }, + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::runtime_api\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALRuntimeAPITarget.cmake\" + }, +]") + +set(MHMRC_symbol_visibility_function + "${CMAKE_CURRENT_LIST_DIR}/MachinekitHALSymbolVisibilityFunction.cmake") + +string(JSON MHMRC_targets_paths_length LENGTH "${MHMRC_targets_paths}") +math(EXPR MHMRC_targets_paths_length "${MHMRC_targets_paths_length} - 1" + OUTPUT_FORMAT DECIMAL) + +foreach(_index RANGE 0 ${MHMRC_targets_paths_length} 1) + string(JSON MHMRC_name GET "${MHMRC_targets_paths}" ${_index} "target") + string(JSON MHMRC_path GET "${MHMRC_targets_paths}" ${_index} "file") + if(NOT EXISTS "${MHMRC_path}") + set(${CMAKE_FIND_PACKAGE_NAME}_FOUND False) + set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE + "File \"${MHMRC_path}\" is missing!") + return() + endif() + if(NOT TARGET "${MHMRC_name}") + include("${MHMRC_path}") + endif() +endforeach() + +include("${MHMRC_symbol_visibility_function}") diff --git a/src/libraries/runtime/cmake/MachinekitHALUnmanaged-RuntimeComponent.cmake.in b/src/libraries/runtime/cmake/MachinekitHALUnmanaged-RuntimeComponent.cmake.in new file mode 100644 index 0000000000..ee79145e91 --- /dev/null +++ b/src/libraries/runtime/cmake/MachinekitHALUnmanaged-RuntimeComponent.cmake.in @@ -0,0 +1,82 @@ +# ~~~ +# #################################################################### +# Description: MachinekitHALUNMANAGED-HALComponent.cmake.in +# +# This file, 'MachinekitHALUNMANAGED-HALComponent.cmake.in', +# implements build system +# rules for Machinekit-HAL project +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +# ##################################################################### +# ~~~ + +# Set the variable prefix of this file to 'MHURC_' + +set(MHURC_targets_paths + "[ + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::runtime_config\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALRuntimeConfigTarget.cmake\" + }, + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::rtapi_pci\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALRTAPIPCITarget.cmake\" + }, + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::mkini\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALMKIniTarget.cmake\" + }, + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::rtapi_compat\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALRuntimeCompatTarget.cmake\" + }, + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::hal_api\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALHALAPITarget.cmake\" + }, + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::runtime_api\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALRuntimeAPITarget.cmake\" + }, + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::runtime_memory_api\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALRuntimeMemoryAPITarget.cmake\" + }, + { + \"target\":\"@MACHINEKIT_HAL_NAMESPACE@::runtime\", + \"file\":\"${CMAKE_CURRENT_LIST_DIR}/MachinekitHALRuntimeTarget.cmake\" + }, +]") + +string(JSON MHURC_targets_paths_length LENGTH "${MHURC_targets_paths}") +math(EXPR MHURC_targets_paths_length "${MHURC_targets_paths_length} - 1" + OUTPUT_FORMAT DECIMAL) + +foreach(_index RANGE 0 ${MHURC_targets_paths_length} 1) + string(JSON MHURC_name GET "${MHURC_targets_paths}" ${_index} "target") + string(JSON MHURC_path GET "${MHURC_targets_paths}" ${_index} "file") + if(NOT EXISTS "${MHURC_path}") + set(${CMAKE_FIND_PACKAGE_NAME}_FOUND False) + set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE + "File \"${MHURC_path}\" is missing!") + return() + endif() + if(NOT TARGET "${MHURC_name}") + include("${MHURC_path}") + endif() +endforeach() diff --git a/src/libraries/runtime_bootstrap/CMakeLists.txt b/src/libraries/runtime_bootstrap/CMakeLists.txt index cb8138acdf..d74cce4ae7 100644 --- a/src/libraries/runtime_bootstrap/CMakeLists.txt +++ b/src/libraries/runtime_bootstrap/CMakeLists.txt @@ -45,9 +45,13 @@ set(MACHINEKIT_HAL_LOG_FILE "${MACHINEKIT_HAL_LOCAL_STATE_OUTPUT_DIRECTORY}/log/hal.log") set(MACHINEKIT_HAL_BIN_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}") +set(PUBLIC_BUILD_INCLUDE_DIRECTORY + "${CMAKE_CURRENT_BINARY_DIR}/build/runtime_config/include") +set(PUBLIC_INSTALL_INCLUDE_DIRECTORY + "${CMAKE_CURRENT_BINARY_DIR}/install/runtime_config/include") + configure_file( - ${RUNTIME_CONFIG} - ${CMAKE_CURRENT_BINARY_DIR}/build/runtime_config/include/runtime/config.h + ${RUNTIME_CONFIG} ${PUBLIC_BUILD_INCLUDE_DIRECTORY}/runtime/config.h NO_SOURCE_PERMISSIONS @ONLY NEWLINE_STYLE UNIX) configure_file( @@ -73,8 +77,7 @@ set(MACHINEKIT_HAL_BIN_DIRECTORY "${MACHINEKIT_HAL_EXECUTABLE_FULL_INSTALL_DIRECTORY}") configure_file( - ${RUNTIME_CONFIG} - ${CMAKE_CURRENT_BINARY_DIR}/install/runtime_config/include/runtime/config.h + ${RUNTIME_CONFIG} ${PUBLIC_INSTALL_INCLUDE_DIRECTORY}/runtime/config.h NO_SOURCE_PERMISSIONS @ONLY NEWLINE_STYLE UNIX) configure_file( @@ -84,32 +87,29 @@ configure_file( target_sources( runtime_config - PUBLIC - ${CMAKE_CURRENT_BINARY_DIR}/build/runtime_config/include/runtime/config.h + PUBLIC ${PUBLIC_BUILD_INCLUDE_DIRECTORY}/runtime/config.h PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/build/runtime_config/src/$/runtime_config.c ) -target_include_directories( - runtime_config - PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/build/runtime_config/include) +target_include_directories(runtime_config + PUBLIC ${PUBLIC_BUILD_INCLUDE_DIRECTORY}) target_sources( runtime_config-install - PUBLIC - ${CMAKE_CURRENT_BINARY_DIR}/install/runtime_config/include/runtime/config.h + PUBLIC ${PUBLIC_INSTALL_INCLUDE_DIRECTORY}/runtime/config.h PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/install/runtime_config/src/runtime_config.c) -target_include_directories( - runtime_config-install - PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/install/runtime_config/include) +target_include_directories(runtime_config-install + PUBLIC ${PUBLIC_INSTALL_INCLUDE_DIRECTORY}) set_target_properties( runtime_config PROPERTIES SOVERSION 0 PREFIX "libmkh" - VERSION ${CMAKE_PROJECT_VERSION}) + VERSION ${CMAKE_PROJECT_VERSION} + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_BUILD_INCLUDE_DIRECTORY}") set_target_properties( runtime_config-install @@ -118,7 +118,8 @@ set_target_properties( VERSION ${CMAKE_PROJECT_VERSION} OUTPUT_NAME "runtime_config" # Needs to have the same name as # target 'runtime_config' - LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/install") + LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/install" + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INSTALL_INCLUDE_DIRECTORY}") configure_file( src/dot_envrc.in ${CMAKE_CURRENT_BINARY_DIR}/build/dot_envrc.configure @ONLY @@ -143,7 +144,8 @@ export( # EXPORT machinekit_hal_runtime_config TARGETS runtime_config NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALRuntimeConfigTarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALRuntimeConfigTarget.cmake" +) cpack_add_component(MachinekitHAL_Library_Runtime_Config_Libraries GROUP MachinekitHAL_Library_Runtime_Config) diff --git a/src/libraries/runtime_bootstrap/src/dot_envrc.in b/src/libraries/runtime_bootstrap/src/dot_envrc.in index df44954ddb..c7819cf01c 100644 --- a/src/libraries/runtime_bootstrap/src/dot_envrc.in +++ b/src/libraries/runtime_bootstrap/src/dot_envrc.in @@ -31,3 +31,20 @@ # ##################################################################### export PATH="@CMAKE_RUNTIME_OUTPUT_DIRECTORY@:${PATH}" + +# Needed for the PyTest test run (temporary hack, TODO) +export MACHINEKIT_INI="@MACHINEKIT_HAL_SYSTEM_CONFIG_OUTPUT_DIRECTORY@/machinekit.ini" + +# Needed for the Python virtual environment in BINARY TREE as the Python packages +# are "installed" and thus the Python modules have the RPATH already removed +export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:@CMAKE_LIBRARY_OUTPUT_DIRECTORY@" + +# Needed for the Comp and Instcomp executables to properly run the generated CMake +# projects +export CMAKE_PREFIX_PATH="@CMAKE_BINARY_DIR@" +export CMAKE_GENERATOR="@CMAKE_GENERATOR@" +export MACHINEKIT_HAL_BUILD_CONFIG="$" + +# Activate the BINARY TREE Python virtual environment +export VIRTUAL_ENV="@PYTHON_VENV_DIRECTORY@" +export PATH="@PYTHON_VENV_DIRECTORY@/bin:$PATH" diff --git a/src/libraries/runtime_math/CMakeLists.txt b/src/libraries/runtime_math/CMakeLists.txt index 3ba8f9fe03..f1196b3504 100644 --- a/src/libraries/runtime_math/CMakeLists.txt +++ b/src/libraries/runtime_math/CMakeLists.txt @@ -118,10 +118,12 @@ if(BUILD_RUNTIME_MATH_LIBRARY) ${CMAKE_CURRENT_SOURCE_DIR}/src/w_sinh.c ${CMAKE_CURRENT_SOURCE_DIR}/src/w_sqrt.c) + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + set(PUBLIC_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_byteorder.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_math64.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/rtapi_math.h) + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_byteorder.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_math64.h + ${PUBLIC_INCLUDE_DIRECTORY}/runtime/rtapi_math.h) set(PRIVATE_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/mathP.h) @@ -131,7 +133,7 @@ if(BUILD_RUNTIME_MATH_LIBRARY) PRIVATE ${SOURCE_FILES} ${PRIVATE_HEADER_FILES}) target_include_directories( - runtime_math PUBLIC $) + runtime_math PUBLIC $) target_link_libraries(runtime_math PRIVATE runtime_api) @@ -146,7 +148,8 @@ if(BUILD_RUNTIME_MATH_LIBRARY) VERSION ${CMAKE_PROJECT_VERSION} PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" PRIVATE_HEADER "${PRIVATE_HEADER_FILES}" - POSITION_INDEPENDENT_CODE TRUE) + POSITION_INDEPENDENT_CODE TRUE + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") install( TARGETS runtime_math EXPORT machinekit_hal_runtime_math @@ -159,7 +162,8 @@ if(BUILD_RUNTIME_MATH_LIBRARY) export( EXPORT machinekit_hal_runtime_math NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALRuntimeMathTarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALRuntimeMathTarget.cmake" + ) cpack_add_component(MachinekitHAL_Library_Runtime_Math_Libraries GROUP MachinekitHAL_Library_Runtime_Math) diff --git a/src/libraries/runtime_memory/CMakeLists.txt b/src/libraries/runtime_memory/CMakeLists.txt index f189696402..3265c8697f 100644 --- a/src/libraries/runtime_memory/CMakeLists.txt +++ b/src/libraries/runtime_memory/CMakeLists.txt @@ -30,11 +30,14 @@ if(BUILD_RUNTIME_MEMORY_LIBRARY) runtime_memory_api) set(SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/shmdrvapi.c) - set(PUBLIC_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/runtime/shmdrv.h) + + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + + set(PUBLIC_HEADER_FILES ${PUBLIC_INCLUDE_DIRECTORY}/runtime/shmdrv.h) target_include_directories( runtime_memory_api - PUBLIC $ + PUBLIC $ $) target_sources( @@ -54,7 +57,8 @@ if(BUILD_RUNTIME_MEMORY_LIBRARY) PREFIX "libmkh" VERSION ${CMAKE_PROJECT_VERSION} PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" - POSITION_INDEPENDENT_CODE TRUE) + POSITION_INDEPENDENT_CODE TRUE + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") install( TARGETS runtime_memory_api EXPORT machinekit_hal_runtime_memory_api diff --git a/src/libraries/samstr_memdefs/CMakeLists.txt b/src/libraries/samstr_memdefs/CMakeLists.txt index b8118bb15f..52bef7fa18 100644 --- a/src/libraries/samstr_memdefs/CMakeLists.txt +++ b/src/libraries/samstr_memdefs/CMakeLists.txt @@ -27,14 +27,20 @@ option(BUILD_SAMSTR_MEMDEFS_LIBRARY "Built the SamStr MemDefs library." TRUE) if(BUILD_SAMSTR_MEMDEFS_LIBRARY) add_library(samstr_memdefs INTERFACE) + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + + set(PUBLIC_HEADER_FILES + ${PUBLIC_INCLUDE_DIRECTORY}/samstr_memdefs/samstr_memdefs.h) + target_include_directories( samstr_memdefs - INTERFACE $ + INTERFACE $ $) set_target_properties( - samstr_memdefs PROPERTIES PUBLIC_HEADER - include/samstr_memdefs/samstr_memdefs.h) + samstr_memdefs + PROPERTIES PUBLIC_HEADER ${PUBLIC_HEADER_FILES} + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") target_link_libraries(samstr_memdefs INTERFACE runtime_api) @@ -48,7 +54,8 @@ if(BUILD_SAMSTR_MEMDEFS_LIBRARY) export( EXPORT machinekit_hal_samstr_memdefs NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALSamStrMemDefsTarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALSamStrMemDefsTarget.cmake" + ) cpack_add_component(MachinekitHAL_Library_SamStr_MemDefs_Headers GROUP MachinekitHAL_Library_SamStr_MemDefs_Development) diff --git a/src/libraries/service/CMakeLists.txt b/src/libraries/service/CMakeLists.txt index 0d64ac8310..47dec91534 100644 --- a/src/libraries/service/CMakeLists.txt +++ b/src/libraries/service/CMakeLists.txt @@ -62,17 +62,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/service.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/service.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Library_Service_Python_Packages) diff --git a/src/libraries/service_discovery/CMakeLists.txt b/src/libraries/service_discovery/CMakeLists.txt index 62b03508f8..27a132a8c6 100644 --- a/src/libraries/service_discovery/CMakeLists.txt +++ b/src/libraries/service_discovery/CMakeLists.txt @@ -63,17 +63,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/service_discovery.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/service_discovery.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Library_Service_Discovery_Python_Packages) diff --git a/src/libraries/symbol_visibility/CMakeLists.txt b/src/libraries/symbol_visibility/CMakeLists.txt index 3e80ef9036..276d5de59a 100644 --- a/src/libraries/symbol_visibility/CMakeLists.txt +++ b/src/libraries/symbol_visibility/CMakeLists.txt @@ -29,11 +29,13 @@ option(BUILD_SYMBOL_VISIBILITY_CMAKE_MODULE if(BUILD_SYMBOL_VISIBILITY_CMAKE_MODULE) - list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/src") - set(CMAKE_MODULE_PATH - "${CMAKE_MODULE_PATH}" - PARENT_SCOPE) - set_property(GLOBAL APPEND PROPERTY MACHINEKIT_HAL_MODULE_PATH - "${CMAKE_CURRENT_SOURCE_DIR}/src") + set(SOURCE_FILE + ${CMAKE_CURRENT_SOURCE_DIR}/src/MachinekitHALSymbolVisibilityFunction.cmake) + + configure_file( + ${SOURCE_FILE} + "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALSymbolVisibilityFunction.cmake" + NO_SOURCE_PERMISSIONS + COPYONLY) endif() diff --git a/src/libraries/symbol_visibility/README.asciidoc b/src/libraries/symbol_visibility/README.asciidoc index 5673257175..780acd0e91 100644 --- a/src/libraries/symbol_visibility/README.asciidoc +++ b/src/libraries/symbol_visibility/README.asciidoc @@ -9,7 +9,7 @@ in managed modules screated as a `add_library( MODULE)`. == Distribution -* **MachinekitHALSymbolVisibility:** CMake module +* **MachinekitHALSymbolVisibilityFunction:** CMake module - Sets all but those symbols in _ELF_ file declared with `RTAPI_EXPORT()` as **local** == CMAKE targets diff --git a/src/libraries/symbol_visibility/src/MachinekitHALSymbolVisibility.cmake b/src/libraries/symbol_visibility/src/MachinekitHALSymbolVisibilityFunction.cmake similarity index 95% rename from src/libraries/symbol_visibility/src/MachinekitHALSymbolVisibility.cmake rename to src/libraries/symbol_visibility/src/MachinekitHALSymbolVisibilityFunction.cmake index 855b2c858e..dda9fdc720 100644 --- a/src/libraries/symbol_visibility/src/MachinekitHALSymbolVisibility.cmake +++ b/src/libraries/symbol_visibility/src/MachinekitHALSymbolVisibilityFunction.cmake @@ -1,8 +1,8 @@ # ~~~ # #################################################################### -# Description: MachinekitHALSymbolVisibility.cmake +# Description: MachinekitHALSymbolVisibilityFunction.cmake # -# This file, 'MachinekitHALSymbolVisibility.cmake', is +# This file, 'MachinekitHALSymbolVisibilityFunction.cmake', is # a Machinekit-HAL specific CMake Module used to manipulate # a C or C++ target's symbol visibility # diff --git a/src/libraries/syslog_async/CMakeLists.txt b/src/libraries/syslog_async/CMakeLists.txt index 7445e496b9..7824cef559 100644 --- a/src/libraries/syslog_async/CMakeLists.txt +++ b/src/libraries/syslog_async/CMakeLists.txt @@ -31,12 +31,15 @@ if(BUILD_SYSLOG_ASYNC_LIBRARY) add_library(${MACHINEKIT_HAL_NAMESPACE}::syslog_async ALIAS syslog_async) set(SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/syslog_async.c) + + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + set(PUBLIC_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/syslog_async/syslog_async.h) + ${PUBLIC_INCLUDE_DIRECTORY}/syslog_async/syslog_async.h) target_include_directories( syslog_async - PUBLIC $ + PUBLIC $ $) target_sources( @@ -50,7 +53,8 @@ if(BUILD_SYSLOG_ASYNC_LIBRARY) PREFIX "libmkh" VERSION ${CMAKE_PROJECT_VERSION} PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" - POSITION_INDEPENDENT_CODE TRUE) + POSITION_INDEPENDENT_CODE TRUE + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") install( TARGETS syslog_async EXPORT machinekit_hal_syslog_async @@ -64,7 +68,8 @@ if(BUILD_SYSLOG_ASYNC_LIBRARY) export( EXPORT machinekit_hal_syslog_async NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALSysLogAsyncTarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALSysLogAsyncTarget.cmake" + ) cpack_add_component(MachinekitHAL_Library_SysLog_Async_Libraries GROUP MachinekitHAL_Library_SysLog_Async) diff --git a/src/libraries/upci/CMakeLists.txt b/src/libraries/upci/CMakeLists.txt index 22ccf4feeb..26d6d1553e 100644 --- a/src/libraries/upci/CMakeLists.txt +++ b/src/libraries/upci/CMakeLists.txt @@ -36,8 +36,11 @@ if(SYS_IO_AVAILABLE) set(SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/upci.c ${CMAKE_CURRENT_SOURCE_DIR}/src/bitfile.c) - set(PUBLIC_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/upci/bitfile.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/upci/upci.h) + + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + + set(PUBLIC_HEADER_FILES ${PUBLIC_INCLUDE_DIRECTORY}/upci/bitfile.h + ${PUBLIC_INCLUDE_DIRECTORY}/upci/upci.h) target_sources( upci @@ -45,13 +48,14 @@ if(SYS_IO_AVAILABLE) PRIVATE ${SOURCE_FILES}) target_include_directories( - upci PUBLIC $) + upci PUBLIC $) set_target_properties( upci PROPERTIES PREFIX "libmkh" PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" - POSITION_INDEPENDENT_CODE TRUE) + POSITION_INDEPENDENT_CODE TRUE + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") install( TARGETS upci @@ -64,7 +68,8 @@ if(SYS_IO_AVAILABLE) export( EXPORT machinekit_hal_upci NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALUPCITarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALUPCITarget.cmake" + ) cpack_add_component(MachinekitHAL_Library_UPCI_Archives GROUP MachinekitHAL_Library_UPCI_Development) diff --git a/src/libraries/user_pci/CMakeLists.txt b/src/libraries/user_pci/CMakeLists.txt index 1e6b7971c7..21e5986130 100644 --- a/src/libraries/user_pci/CMakeLists.txt +++ b/src/libraries/user_pci/CMakeLists.txt @@ -33,15 +33,17 @@ if(BUILD_USER_PCI_LIBRARY) ${CMAKE_CURRENT_SOURCE_DIR}/src/firmware.c ${CMAKE_CURRENT_SOURCE_DIR}/src/string.c) + set(PUBLIC_INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include") + set(PUBLIC_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/include/user_pci/config_module.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/user_pci/device.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/user_pci/firmware.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/user_pci/gfp.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/user_pci/list.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/user_pci/module.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/user_pci/slab.h - ${CMAKE_CURRENT_SOURCE_DIR}/include/user_pci/string.h) + ${PUBLIC_INCLUDE_DIRECTORY}/user_pci/config_module.h + ${PUBLIC_INCLUDE_DIRECTORY}/user_pci/device.h + ${PUBLIC_INCLUDE_DIRECTORY}/user_pci/firmware.h + ${PUBLIC_INCLUDE_DIRECTORY}/user_pci/gfp.h + ${PUBLIC_INCLUDE_DIRECTORY}/user_pci/list.h + ${PUBLIC_INCLUDE_DIRECTORY}/user_pci/module.h + ${PUBLIC_INCLUDE_DIRECTORY}/user_pci/slab.h + ${PUBLIC_INCLUDE_DIRECTORY}/user_pci/string.h) target_sources( user_pci @@ -49,7 +51,7 @@ if(BUILD_USER_PCI_LIBRARY) PRIVATE ${SOURCE_FILES}) target_include_directories( - user_pci PUBLIC $ + user_pci PUBLIC $ $) target_link_libraries(user_pci PRIVATE runtime_api hal_api) @@ -60,7 +62,8 @@ if(BUILD_USER_PCI_LIBRARY) PREFIX "libmkh" VERSION ${CMAKE_PROJECT_VERSION} PUBLIC_HEADER "${PUBLIC_HEADER_FILES}" - POSITION_INDEPENDENT_CODE TRUE) + POSITION_INDEPENDENT_CODE TRUE + PUBLIC_INCLUDE_DIRECTORY "${PUBLIC_INCLUDE_DIRECTORY}") target_compile_definitions(user_pci PRIVATE "RTAPI") @@ -76,7 +79,8 @@ if(BUILD_USER_PCI_LIBRARY) export( EXPORT machinekit_hal_user_pci NAMESPACE "${MACHINEKIT_HAL_NAMESPACE}::" - FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALUserPCITarget.cmake") + FILE "${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}/MachinekitHALUserPCITarget.cmake" + ) cpack_add_component(MachinekitHAL_Library_User_PCI_Libraries GROUP MachinekitHAL_Library_User_PCI) diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt index 3533f97ece..bcb3c75be3 100644 --- a/src/modules/CMakeLists.txt +++ b/src/modules/CMakeLists.txt @@ -24,9 +24,5 @@ # ##################################################################### # ~~~ -get_property(_module_path GLOBAL PROPERTY MACHINEKIT_HAL_MODULE_PATH) -list(APPEND CMAKE_MODULE_PATH "${_module_path}") -unset(_module_path) - add_subdirectory(unmanaged) add_subdirectory(managed) diff --git a/src/modules/managed/components/CMakeLists.txt b/src/modules/managed/components/CMakeLists.txt index d5244622ec..e93dc0b8f2 100644 --- a/src/modules/managed/components/CMakeLists.txt +++ b/src/modules/managed/components/CMakeLists.txt @@ -201,11 +201,13 @@ add_subdirectory(pepper) add_subdirectory(period) add_subdirectory(pid) add_subdirectory(pidv2) +add_subdirectory(pll_correction) add_subdirectory(plug_demo) add_subdirectory(probe_parport) add_subdirectory(pwmgen) add_subdirectory(pwmgenv2) add_subdirectory(random) +add_subdirectory(remote) add_subdirectory(reset) add_subdirectory(resetv2) add_subdirectory(ringread) @@ -247,6 +249,10 @@ add_subdirectory(sum2v2) add_subdirectory(sumn) add_subdirectory(sumnv2) add_subdirectory(svalev2) +add_subdirectory(symbols_define) +add_subdirectory(symbols_define_out) +add_subdirectory(symbols_use) +add_subdirectory(symbols_use_out) add_subdirectory(thc) add_subdirectory(thcud) add_subdirectory(threads) diff --git a/src/modules/managed/components/abs/CMakeLists.txt b/src/modules/managed/components/abs/CMakeLists.txt index 837ba5c919..57070a6de4 100644 --- a/src/modules/managed/components/abs/CMakeLists.txt +++ b/src/modules/managed/components/abs/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_ABS_MANAGED_MODULE "Built the ABS HAL managed module." TRUE) if(BUILD_ABS_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( abs diff --git a/src/modules/managed/components/abs_s32/CMakeLists.txt b/src/modules/managed/components/abs_s32/CMakeLists.txt index 4f2fd45407..e7701c2c62 100644 --- a/src/modules/managed/components/abs_s32/CMakeLists.txt +++ b/src/modules/managed/components/abs_s32/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_ABS_S32_MANAGED_MODULE "Built the ABS S32 HAL managed module." TRUE) if(BUILD_ABS_S32_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( abs_s32 diff --git a/src/modules/managed/components/abs_s32v2/CMakeLists.txt b/src/modules/managed/components/abs_s32v2/CMakeLists.txt index 06ef3b83c3..ee0cde5ed4 100644 --- a/src/modules/managed/components/abs_s32v2/CMakeLists.txt +++ b/src/modules/managed/components/abs_s32v2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_ABS_S32V2_MANAGED_MODULE "Built the ABS S32 V2 HAL managed module." TRUE) if(BUILD_ABS_S32V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( abs_s32v2 diff --git a/src/modules/managed/components/abs_s64/CMakeLists.txt b/src/modules/managed/components/abs_s64/CMakeLists.txt index b13d0511fa..d79c2e2ef6 100644 --- a/src/modules/managed/components/abs_s64/CMakeLists.txt +++ b/src/modules/managed/components/abs_s64/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_ABS_S64_MANAGED_MODULE "Built the ABS S64 HAL managed module." TRUE) if(BUILD_ABS_S64_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( abs_s64 diff --git a/src/modules/managed/components/absv2/CMakeLists.txt b/src/modules/managed/components/absv2/CMakeLists.txt index c2c991e45c..dea6797f31 100644 --- a/src/modules/managed/components/absv2/CMakeLists.txt +++ b/src/modules/managed/components/absv2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_ABSV2_MANAGED_MODULE "Built the ABS V2 HAL managed module." TRUE) if(BUILD_ABSV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( absv2 diff --git a/src/modules/managed/components/and2/CMakeLists.txt b/src/modules/managed/components/and2/CMakeLists.txt index deaac9ca4b..a96d414eb5 100644 --- a/src/modules/managed/components/and2/CMakeLists.txt +++ b/src/modules/managed/components/and2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_AND2_MANAGED_MODULE "Built the AND2 HAL managed module." TRUE) if(BUILD_AND2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( and2 diff --git a/src/modules/managed/components/and2v2/CMakeLists.txt b/src/modules/managed/components/and2v2/CMakeLists.txt index b595c71fb3..fd67aee35a 100644 --- a/src/modules/managed/components/and2v2/CMakeLists.txt +++ b/src/modules/managed/components/and2v2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_AND2V2_MANAGED_MODULE "Built the AND2 V2 HAL managed module." TRUE) if(BUILD_AND2V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( and2v2 diff --git a/src/modules/managed/components/andn/CMakeLists.txt b/src/modules/managed/components/andn/CMakeLists.txt index 9240f78444..3d6d9761d0 100644 --- a/src/modules/managed/components/andn/CMakeLists.txt +++ b/src/modules/managed/components/andn/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_ANDN_MANAGED_MODULE "Built the ANDN HAL managed module." TRUE) if(BUILD_ANDH_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( andn diff --git a/src/modules/managed/components/andnv2/CMakeLists.txt b/src/modules/managed/components/andnv2/CMakeLists.txt index 1957f7a372..5a0d9e356e 100644 --- a/src/modules/managed/components/andnv2/CMakeLists.txt +++ b/src/modules/managed/components/andnv2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_ANDNV2_MANAGED_MODULE "Built the ANDN V2 HAL managed module." TRUE) if(BUILD_ANDNV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( andnv2 diff --git a/src/modules/managed/components/at_pid/CMakeLists.txt b/src/modules/managed/components/at_pid/CMakeLists.txt index 0d2ad26736..bcd279a9b3 100644 --- a/src/modules/managed/components/at_pid/CMakeLists.txt +++ b/src/modules/managed/components/at_pid/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_AT_PID_MANAGED_MODULE "Built the At PID HAL managed module." TRUE) if(BUILD_AT_PID_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( at_pid diff --git a/src/modules/managed/components/at_pidv2/CMakeLists.txt b/src/modules/managed/components/at_pidv2/CMakeLists.txt index b3b37b6a70..f119c6c500 100644 --- a/src/modules/managed/components/at_pidv2/CMakeLists.txt +++ b/src/modules/managed/components/at_pidv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_AT_PIDV2_MANAGED_MODULE "Built the At PID V2 HAL managed module." TRUE) if(BUILD_AT_PIDV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( at_pidv2 diff --git a/src/modules/managed/components/bin2gray/CMakeLists.txt b/src/modules/managed/components/bin2gray/CMakeLists.txt index 406385b808..b10ab02eee 100644 --- a/src/modules/managed/components/bin2gray/CMakeLists.txt +++ b/src/modules/managed/components/bin2gray/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_BIN2GRAY_MANAGED_MODULE "Built the Bin2Gray HAL managed module." TRUE) if(BUILD_BIN2GRAY_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( bin2gray diff --git a/src/modules/managed/components/bin2grayv2/CMakeLists.txt b/src/modules/managed/components/bin2grayv2/CMakeLists.txt index 9b54c2c389..219e3a7858 100644 --- a/src/modules/managed/components/bin2grayv2/CMakeLists.txt +++ b/src/modules/managed/components/bin2grayv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_BIN2GRAYV2_MANAGED_MODULE "Built the Bin2Gray V2 HAL managed module." TRUE) if(BUILD_BIN2GRAYV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( bin2grayv2 diff --git a/src/modules/managed/components/biquad/CMakeLists.txt b/src/modules/managed/components/biquad/CMakeLists.txt index 6fda38f3b2..e980c689f0 100644 --- a/src/modules/managed/components/biquad/CMakeLists.txt +++ b/src/modules/managed/components/biquad/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_BIQUAD_MANAGED_MODULE "Built the Biquad HAL managed module." TRUE) if(BUILD_BIQUAD_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( biquad diff --git a/src/modules/managed/components/biquadv2/CMakeLists.txt b/src/modules/managed/components/biquadv2/CMakeLists.txt index 1cff23fb58..31567d3879 100644 --- a/src/modules/managed/components/biquadv2/CMakeLists.txt +++ b/src/modules/managed/components/biquadv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_BIQUADV2_MANAGED_MODULE "Built the Biquad V2 HAL managed module." TRUE) if(BUILD_BIQUAD_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( biquadv2 diff --git a/src/modules/managed/components/bitslice/CMakeLists.txt b/src/modules/managed/components/bitslice/CMakeLists.txt index ec9612d580..d1a0b2bfd5 100644 --- a/src/modules/managed/components/bitslice/CMakeLists.txt +++ b/src/modules/managed/components/bitslice/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_BITSLICE_MANAGED_MODULE "Built the BitSlice HAL managed module." TRUE) if(BUILD_BITSLICE_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( bitslice diff --git a/src/modules/managed/components/bitslicev2/CMakeLists.txt b/src/modules/managed/components/bitslicev2/CMakeLists.txt index 8dc4c89021..7d70e10552 100644 --- a/src/modules/managed/components/bitslicev2/CMakeLists.txt +++ b/src/modules/managed/components/bitslicev2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_BITSLICEV2_MANAGED_MODULE "Built the Bitslice V2 HAL managed module." TRUE) if(BUILD_BITSLICEV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( bitslicev2 diff --git a/src/modules/managed/components/bitwise/CMakeLists.txt b/src/modules/managed/components/bitwise/CMakeLists.txt index 2540332f4e..bb76793f17 100644 --- a/src/modules/managed/components/bitwise/CMakeLists.txt +++ b/src/modules/managed/components/bitwise/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_BITWISE_MANAGED_MODULE "Built the Bitwise HAL managed module." TRUE) if(BUILD_BITWISE_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( bitwise diff --git a/src/modules/managed/components/bitwisev2/CMakeLists.txt b/src/modules/managed/components/bitwisev2/CMakeLists.txt index b85385e063..5f0b70a0b6 100644 --- a/src/modules/managed/components/bitwisev2/CMakeLists.txt +++ b/src/modules/managed/components/bitwisev2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_BITWISEV2_MANAGED_MODULE "Built the Bitwise V2 HAL managed module." TRUE) if(BUILD_BITWISEV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( bitwisev2 diff --git a/src/modules/managed/components/bldc/CMakeLists.txt b/src/modules/managed/components/bldc/CMakeLists.txt index 4a4712a88e..69ad3aa6a5 100644 --- a/src/modules/managed/components/bldc/CMakeLists.txt +++ b/src/modules/managed/components/bldc/CMakeLists.txt @@ -27,5 +27,20 @@ option(BUILD_BLDC_MANAGED_MODULE "Built the BLDC HAL managed module." TRUE) if(BUILD_BLDC_MANAGED_MODULE) + include(MachinekitHALCompFunction) + add_legacy_managed_module( + bldc + SOURCE + src/bldc.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + LINK_LIBRARIES + runtime_math + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_dependencies(bldc comp_executable) endif() diff --git a/src/modules/managed/components/bldc_hall3/CMakeLists.txt b/src/modules/managed/components/bldc_hall3/CMakeLists.txt index e74c9fa170..1f8c9afbaf 100644 --- a/src/modules/managed/components/bldc_hall3/CMakeLists.txt +++ b/src/modules/managed/components/bldc_hall3/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_BLDC_HALL3_MANAGED_MODULE "Built the BLDC HALL3 HAL managed module." TRUE) if(BUILD_BLDC_HALL3_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( bldc_hall3 diff --git a/src/modules/managed/components/bldc_hall3v2/CMakeLists.txt b/src/modules/managed/components/bldc_hall3v2/CMakeLists.txt index a0ed5ed7ee..e9660f65e7 100644 --- a/src/modules/managed/components/bldc_hall3v2/CMakeLists.txt +++ b/src/modules/managed/components/bldc_hall3v2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_BLDC_HALL3V2_MANAGED_MODULE "Built the BLDC HALL3 HAL managed module." TRUE) if(BUILD_BLDC_HALL3V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( bldc_hall3v2 diff --git a/src/modules/managed/components/blend/CMakeLists.txt b/src/modules/managed/components/blend/CMakeLists.txt index b643b3f2d2..df3ca924a8 100644 --- a/src/modules/managed/components/blend/CMakeLists.txt +++ b/src/modules/managed/components/blend/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_BLEND_MANAGED_MODULE "Built the BLEND HAL managed module." TRUE) if(BUILD_BLEND_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( blend diff --git a/src/modules/managed/components/blendv2/CMakeLists.txt b/src/modules/managed/components/blendv2/CMakeLists.txt index 40b90a754b..8249506ac9 100644 --- a/src/modules/managed/components/blendv2/CMakeLists.txt +++ b/src/modules/managed/components/blendv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_BLENDV2_MANAGED_MODULE "Built the BLEND V2 HAL managed module." TRUE) if(BUILD_BLENDV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( blendv2 diff --git a/src/modules/managed/components/charge_pump/CMakeLists.txt b/src/modules/managed/components/charge_pump/CMakeLists.txt index 2b909de3de..b4eb782313 100644 --- a/src/modules/managed/components/charge_pump/CMakeLists.txt +++ b/src/modules/managed/components/charge_pump/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_CHARGE_PUMP_MANAGED_MODULE "Built the Charge Pump HAL managed module." TRUE) if(BUILD_CHARGE_PUMP_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( charge_pump diff --git a/src/modules/managed/components/charge_pumpv2/CMakeLists.txt b/src/modules/managed/components/charge_pumpv2/CMakeLists.txt index 9d7b80b90e..c921a2cbd9 100644 --- a/src/modules/managed/components/charge_pumpv2/CMakeLists.txt +++ b/src/modules/managed/components/charge_pumpv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_CHARGE_PUMPV2_MANAGED_MODULE "Built the Charge Pump V2 HAL managed module." TRUE) if(BUILD_CHARGE_PUMPV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( charge_pumpv2 diff --git a/src/modules/managed/components/clarke2/CMakeLists.txt b/src/modules/managed/components/clarke2/CMakeLists.txt index fa5d7ee54d..1ab8efc383 100644 --- a/src/modules/managed/components/clarke2/CMakeLists.txt +++ b/src/modules/managed/components/clarke2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_CLARKE2_MANAGED_MODULE "Built the Clarke2 HAL managed module." TRUE) if(BUILD_CLARKE2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( clarke2 diff --git a/src/modules/managed/components/clarke2v2/CMakeLists.txt b/src/modules/managed/components/clarke2v2/CMakeLists.txt index 791ffeee35..8b71cb14a4 100644 --- a/src/modules/managed/components/clarke2v2/CMakeLists.txt +++ b/src/modules/managed/components/clarke2v2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_CLARKE2V2_MANAGED_MODULE "Built the Clarke2 V2 HAL managed module." TRUE) if(BUILD_CLARKE2V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( clarke2v2 diff --git a/src/modules/managed/components/clarke3/CMakeLists.txt b/src/modules/managed/components/clarke3/CMakeLists.txt index eb7af25683..b940498bcd 100644 --- a/src/modules/managed/components/clarke3/CMakeLists.txt +++ b/src/modules/managed/components/clarke3/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_CLARKE3_MANAGED_MODULE "Built the Clarke3 HAL managed module." TRUE) if(BUILD_CLARKE3_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( clarke3 diff --git a/src/modules/managed/components/clarke3v2/CMakeLists.txt b/src/modules/managed/components/clarke3v2/CMakeLists.txt index 15aa81a87f..05c588f746 100644 --- a/src/modules/managed/components/clarke3v2/CMakeLists.txt +++ b/src/modules/managed/components/clarke3v2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_CLARKE3V2_MANAGED_MODULE "Built the Clarke3 V2 HAL managed module." TRUE) if(BUILD_CLARKE3V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( clarke3v2 diff --git a/src/modules/managed/components/clarkeinv/CMakeLists.txt b/src/modules/managed/components/clarkeinv/CMakeLists.txt index d02f35d5b0..94d28da038 100644 --- a/src/modules/managed/components/clarkeinv/CMakeLists.txt +++ b/src/modules/managed/components/clarkeinv/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_CLARKEINV_MANAGED_MODULE "Built the ClarkeInv HAL managed module." TRUE) if(BUILD_CLARKEINV_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( clarkeinv diff --git a/src/modules/managed/components/clarkeinvv2/CMakeLists.txt b/src/modules/managed/components/clarkeinvv2/CMakeLists.txt index 3553128e92..d7434a8433 100644 --- a/src/modules/managed/components/clarkeinvv2/CMakeLists.txt +++ b/src/modules/managed/components/clarkeinvv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_CLARKEINVV2_MANAGED_MODULE "Built the ClarkeInv V2 HAL managed module." TRUE) if(BUILD_CLARKEINVV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( clarkeinvv2 diff --git a/src/modules/managed/components/comp/CMakeLists.txt b/src/modules/managed/components/comp/CMakeLists.txt index 199700f301..3f16260d32 100644 --- a/src/modules/managed/components/comp/CMakeLists.txt +++ b/src/modules/managed/components/comp/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_COMP_MANAGED_MODULE "Built the Comp HAL managed module." TRUE) if(BUILD_COMP_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( comp diff --git a/src/modules/managed/components/compv2/CMakeLists.txt b/src/modules/managed/components/compv2/CMakeLists.txt index c5fcd791b5..50c175977b 100644 --- a/src/modules/managed/components/compv2/CMakeLists.txt +++ b/src/modules/managed/components/compv2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_COMPV2_MANAGED_MODULE "Built the Comp V2 HAL managed module." TRUE) if(BUILD_COMPV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( compv2 diff --git a/src/modules/managed/components/const_rt/CMakeLists.txt b/src/modules/managed/components/const_rt/CMakeLists.txt index f86b9fd9c6..49c6c3397e 100644 --- a/src/modules/managed/components/const_rt/CMakeLists.txt +++ b/src/modules/managed/components/const_rt/CMakeLists.txt @@ -30,7 +30,7 @@ option(BUILD_CONST_RT_MANAGED_MODULE "Built the Const-RT HAL managed module." FALSE) if(BUILD_CONST_RT_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(const_rt MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::const-rt ALIAS const_rt) diff --git a/src/modules/managed/components/constant/CMakeLists.txt b/src/modules/managed/components/constant/CMakeLists.txt index 16c3fa7f12..5ab2e601e5 100644 --- a/src/modules/managed/components/constant/CMakeLists.txt +++ b/src/modules/managed/components/constant/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_CONSTANT_MANAGED_MODULE "Built the Constant HAL managed module." TRUE) if(BUILD_CONSTANT_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( constant diff --git a/src/modules/managed/components/constantv2/CMakeLists.txt b/src/modules/managed/components/constantv2/CMakeLists.txt index 513f7a80a8..611f91e02c 100644 --- a/src/modules/managed/components/constantv2/CMakeLists.txt +++ b/src/modules/managed/components/constantv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_CONSTANTV2_MANAGED_MODULE "Built the Constant V2 HAL managed module." TRUE) if(BUILD_CONSTANTV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( constantv2 diff --git a/src/modules/managed/components/conv/CMakeLists.txt b/src/modules/managed/components/conv/CMakeLists.txt index 35af7b35f2..13f64dcebe 100644 --- a/src/modules/managed/components/conv/CMakeLists.txt +++ b/src/modules/managed/components/conv/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_CONVS_MANAGED_MODULE "Built the Conv set of HAL managed modules." TRUE) if(BUILD_CONVS_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) set(CONV_ICOMP_IN "float") set(CONV_ICOMP_OUT "s32") set(CONV_ICOMP_CC "") diff --git a/src/modules/managed/components/counter/CMakeLists.txt b/src/modules/managed/components/counter/CMakeLists.txt index aeeba923c9..1eaf4d101d 100644 --- a/src/modules/managed/components/counter/CMakeLists.txt +++ b/src/modules/managed/components/counter/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_COUNTER_MANAGED_MODULE "Built the Counter HAL managed module." TRUE) if(BUILD_COUNTER_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(counter MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::counter ALIAS counter) diff --git a/src/modules/managed/components/ddt/CMakeLists.txt b/src/modules/managed/components/ddt/CMakeLists.txt index 9ea22409bf..cfad72c2af 100644 --- a/src/modules/managed/components/ddt/CMakeLists.txt +++ b/src/modules/managed/components/ddt/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_DDT_MANAGED_MODULE "Built the Ddt HAL managed module." TRUE) if(BUILD_DDT_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( ddt diff --git a/src/modules/managed/components/ddtv2/CMakeLists.txt b/src/modules/managed/components/ddtv2/CMakeLists.txt index fb64d31b39..d797b7074d 100644 --- a/src/modules/managed/components/ddtv2/CMakeLists.txt +++ b/src/modules/managed/components/ddtv2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_DDTV2_MANAGED_MODULE "Built the Ddt HAL managed module." TRUE) if(BUILD_DDTV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( ddtv2 diff --git a/src/modules/managed/components/deadzone/CMakeLists.txt b/src/modules/managed/components/deadzone/CMakeLists.txt index 80eff2b003..aea34e3cb2 100644 --- a/src/modules/managed/components/deadzone/CMakeLists.txt +++ b/src/modules/managed/components/deadzone/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_DEADZONE_MANAGED_MODULE "Built the Deadzone HAL managed module." TRUE) if(BUILD_DEADZONE_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( deadzone diff --git a/src/modules/managed/components/deadzonev2/CMakeLists.txt b/src/modules/managed/components/deadzonev2/CMakeLists.txt index c5233d6bca..05519f0768 100644 --- a/src/modules/managed/components/deadzonev2/CMakeLists.txt +++ b/src/modules/managed/components/deadzonev2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_DEADZONEV2_MANAGED_MODULE "Built the Deadzone V2 HAL managed module." TRUE) if(BUILD_DEADZONEV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( deadzonev2 diff --git a/src/modules/managed/components/debounce/CMakeLists.txt b/src/modules/managed/components/debounce/CMakeLists.txt index 604d97887a..70e1a312dd 100644 --- a/src/modules/managed/components/debounce/CMakeLists.txt +++ b/src/modules/managed/components/debounce/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_DEBOUNCE_MANAGED_MODULE "Built the Debounce HAL managed module." TRUE) if(BUILD_DEBOUNCE_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( debounce diff --git a/src/modules/managed/components/debouncev2/CMakeLists.txt b/src/modules/managed/components/debouncev2/CMakeLists.txt index 918a37808c..bafb079ca9 100644 --- a/src/modules/managed/components/debouncev2/CMakeLists.txt +++ b/src/modules/managed/components/debouncev2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_DEBOUNCEV2_MANAGED_MODULE "Built the Debounce V2 HAL managed module." TRUE) if(BUILD_DEBOUNCEV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( debouncev2 diff --git a/src/modules/managed/components/delayline/CMakeLists.txt b/src/modules/managed/components/delayline/CMakeLists.txt index a09b960b91..9486faa0fb 100644 --- a/src/modules/managed/components/delayline/CMakeLists.txt +++ b/src/modules/managed/components/delayline/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_DELAYLINE_MANAGED_MODULE "Built the Delayline HAL managed module." TRUE) if(BUILD_DELAYLINE_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(delayline MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::delayline ALIAS delayline) diff --git a/src/modules/managed/components/die/CMakeLists.txt b/src/modules/managed/components/die/CMakeLists.txt index 71394e6ce5..9374aeaaa9 100644 --- a/src/modules/managed/components/die/CMakeLists.txt +++ b/src/modules/managed/components/die/CMakeLists.txt @@ -23,3 +23,22 @@ # # ##################################################################### # ~~~ + +option(BUILD_DIE_MANAGED_MODULE "Built the Die HAL managed module." TRUE) + +if(BUILD_DIE_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + die + SOURCE + src/die.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_dependencies(die comp_executable) +endif() diff --git a/src/modules/managed/components/div2/CMakeLists.txt b/src/modules/managed/components/div2/CMakeLists.txt index 74337f1dae..225a621993 100644 --- a/src/modules/managed/components/div2/CMakeLists.txt +++ b/src/modules/managed/components/div2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_DIV2_MANAGED_MODULE "Built the Div2 HAL managed module." TRUE) if(BUILD_DIV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( div2 diff --git a/src/modules/managed/components/div2v2/CMakeLists.txt b/src/modules/managed/components/div2v2/CMakeLists.txt index 30d5119fbd..3a73cdacd1 100644 --- a/src/modules/managed/components/div2v2/CMakeLists.txt +++ b/src/modules/managed/components/div2v2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_DIV2V2_MANAGED_MODULE "Built the Div2 V2 HAL managed module." TRUE) if(BUILD_DIV2V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( div2v2 diff --git a/src/modules/managed/components/dummy_stepgen/CMakeLists.txt b/src/modules/managed/components/dummy_stepgen/CMakeLists.txt index 1dac4fb3e9..2b0b0a34e7 100644 --- a/src/modules/managed/components/dummy_stepgen/CMakeLists.txt +++ b/src/modules/managed/components/dummy_stepgen/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_DUMMY_STEPGEN_MANAGED_MODULE "Built the Dummy Stepgen HAL managed module." TRUE) if(BUILD_DUMMY_STEPGEN_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( dummy_stepgen diff --git a/src/modules/managed/components/edge/CMakeLists.txt b/src/modules/managed/components/edge/CMakeLists.txt index 3196e7b974..4eddc7952a 100644 --- a/src/modules/managed/components/edge/CMakeLists.txt +++ b/src/modules/managed/components/edge/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_EDGE_MANAGED_MODULE "Built the Edge HAL managed module." TRUE) if(BUILD_EDGE_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( edge diff --git a/src/modules/managed/components/edgev2/CMakeLists.txt b/src/modules/managed/components/edgev2/CMakeLists.txt index d2be424ef3..fa9bacee96 100644 --- a/src/modules/managed/components/edgev2/CMakeLists.txt +++ b/src/modules/managed/components/edgev2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_EDGEV2_MANAGED_MODULE "Built the Edge V2 HAL managed module." TRUE) if(BUILD_EDGEV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( edgev2 diff --git a/src/modules/managed/components/encoder/CMakeLists.txt b/src/modules/managed/components/encoder/CMakeLists.txt index 2204bac933..dbc519d716 100644 --- a/src/modules/managed/components/encoder/CMakeLists.txt +++ b/src/modules/managed/components/encoder/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_ENCODER_MANAGED_MODULE "Built the Encoder HAL managed module." TRUE) if(BUILD_ENCODER_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(encoder MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::encoder ALIAS encoder) diff --git a/src/modules/managed/components/encoder_ratio/CMakeLists.txt b/src/modules/managed/components/encoder_ratio/CMakeLists.txt index 000067d4dc..92997183e7 100644 --- a/src/modules/managed/components/encoder_ratio/CMakeLists.txt +++ b/src/modules/managed/components/encoder_ratio/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_ENCODER_RATIO_MANAGED_MODULE "Built the Encoder ratio HAL managed module." TRUE) if(BUILD_ENCODER_RATIO_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(encoder_ratio MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::encoder_ratio ALIAS encoder_ratio) diff --git a/src/modules/managed/components/encoder_ratiov2/CMakeLists.txt b/src/modules/managed/components/encoder_ratiov2/CMakeLists.txt index 478a8d0b0f..e0e4dc5bf4 100644 --- a/src/modules/managed/components/encoder_ratiov2/CMakeLists.txt +++ b/src/modules/managed/components/encoder_ratiov2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_ENCODER_RATIOV2_MANAGED_MODULE "Built the Encoder ratio v2 HAL managed module." TRUE) if(BUILD_ENCODER_RATIOV2_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(encoder_ratiov2 MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::encoder_ratiov2 ALIAS diff --git a/src/modules/managed/components/encoderv2/CMakeLists.txt b/src/modules/managed/components/encoderv2/CMakeLists.txt index 229a6eae22..8e90b4440c 100644 --- a/src/modules/managed/components/encoderv2/CMakeLists.txt +++ b/src/modules/managed/components/encoderv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_ENCODERV2_MANAGED_MODULE "Built the Encoder v2 HAL managed module." TRUE) if(BUILD_ENCODERV2_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(encoderv2 MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::encoderv2 ALIAS encoderv2) diff --git a/src/modules/managed/components/estop_latch/CMakeLists.txt b/src/modules/managed/components/estop_latch/CMakeLists.txt index df42ef67f0..89c5d2561a 100644 --- a/src/modules/managed/components/estop_latch/CMakeLists.txt +++ b/src/modules/managed/components/estop_latch/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_ESTOP_LATCH_MANAGED_MODULE "Built the Estop Latch HAL managed module." TRUE) if(BUILD_ESTOP_LATCH_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( estop_latch diff --git a/src/modules/managed/components/estop_latchv2/CMakeLists.txt b/src/modules/managed/components/estop_latchv2/CMakeLists.txt index 8c2c2abc59..f347adee3e 100644 --- a/src/modules/managed/components/estop_latchv2/CMakeLists.txt +++ b/src/modules/managed/components/estop_latchv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_ESTOP_LATCHV2_MANAGED_MODULE "Built the Estop Latch V2 HAL managed module." TRUE) if(BUILD_ESTOP_LATCHV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( estop_latchv2 diff --git a/src/modules/managed/components/failstop/CMakeLists.txt b/src/modules/managed/components/failstop/CMakeLists.txt index e7836c3208..f547f77d94 100644 --- a/src/modules/managed/components/failstop/CMakeLists.txt +++ b/src/modules/managed/components/failstop/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_FAILSTOP_MANAGED_MODULE "Built the Failstop HAL managed module." TRUE) if(BUILD_FAILSTOP_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( failstop diff --git a/src/modules/managed/components/feedcomp/CMakeLists.txt b/src/modules/managed/components/feedcomp/CMakeLists.txt index 2fb9c1b16a..c6d35051e9 100644 --- a/src/modules/managed/components/feedcomp/CMakeLists.txt +++ b/src/modules/managed/components/feedcomp/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_FEEDCOMP_MANAGED_MODULE "Built the Feedcomp HAL managed module." TRUE) if(BUILD_FEEDCOMP_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( feedcomp diff --git a/src/modules/managed/components/feedcompv2/CMakeLists.txt b/src/modules/managed/components/feedcompv2/CMakeLists.txt index 82799bfb3b..71aa8a40cb 100644 --- a/src/modules/managed/components/feedcompv2/CMakeLists.txt +++ b/src/modules/managed/components/feedcompv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_FEEDCOMPV2_MANAGED_MODULE "Built the Feedcomp V2 HAL managed module." TRUE) if(BUILD_FEEDCOMPV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( feedcompv2 diff --git a/src/modules/managed/components/flipflop/CMakeLists.txt b/src/modules/managed/components/flipflop/CMakeLists.txt index 40c2c8ab0d..46e34c0473 100644 --- a/src/modules/managed/components/flipflop/CMakeLists.txt +++ b/src/modules/managed/components/flipflop/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_FLIPFLOP_MANAGED_MODULE "Built the FlipFlop HAL managed module." TRUE) if(BUILD_FLIPFLOP_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( flipflop diff --git a/src/modules/managed/components/flipflopv2/CMakeLists.txt b/src/modules/managed/components/flipflopv2/CMakeLists.txt index 35f6ea7774..a31eff941c 100644 --- a/src/modules/managed/components/flipflopv2/CMakeLists.txt +++ b/src/modules/managed/components/flipflopv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_FLIPFLOPV2_MANAGED_MODULE "Built the Flipflop V2 HAL managed module." TRUE) if(BUILD_FLIPFLOPV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( flipflopv2 diff --git a/src/modules/managed/components/gantry/CMakeLists.txt b/src/modules/managed/components/gantry/CMakeLists.txt index c19d6714a4..81bf0e2179 100644 --- a/src/modules/managed/components/gantry/CMakeLists.txt +++ b/src/modules/managed/components/gantry/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_GANTRY_MANAGED_MODULE "Built the Gantry HAL managed module." TRUE) if(BUILD_GANTRY_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( gantry diff --git a/src/modules/managed/components/gantryv2/CMakeLists.txt b/src/modules/managed/components/gantryv2/CMakeLists.txt index 40e899d611..d1649b95b7 100644 --- a/src/modules/managed/components/gantryv2/CMakeLists.txt +++ b/src/modules/managed/components/gantryv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_GANTRYV2_MANAGED_MODULE "Built the Gantry V2 HAL managed module." TRUE) if(BUILD_GANTRYV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( gantryv2 diff --git a/src/modules/managed/components/gearchange/CMakeLists.txt b/src/modules/managed/components/gearchange/CMakeLists.txt index 5fd8e56d6e..085bb0dae3 100644 --- a/src/modules/managed/components/gearchange/CMakeLists.txt +++ b/src/modules/managed/components/gearchange/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_GEARCHANGE_MANAGED_MODULE "Built the Gearchange HAL managed module." TRUE) if(BUILD_GEARCHANGE_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( gearchange diff --git a/src/modules/managed/components/gearchangev2/CMakeLists.txt b/src/modules/managed/components/gearchangev2/CMakeLists.txt index 42c71cffdb..62ec2aa551 100644 --- a/src/modules/managed/components/gearchangev2/CMakeLists.txt +++ b/src/modules/managed/components/gearchangev2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_GEARCHANGEV2_MANAGED_MODULE "Built the Gearchange V2 HAL managed module." TRUE) if(BUILD_GEARCHANGEV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( gearchangev2 diff --git a/src/modules/managed/components/gray2bin/CMakeLists.txt b/src/modules/managed/components/gray2bin/CMakeLists.txt index 56a8336e5b..3deb2b425a 100644 --- a/src/modules/managed/components/gray2bin/CMakeLists.txt +++ b/src/modules/managed/components/gray2bin/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_GRAY2BIN_MANAGED_MODULE "Built the Gray2Bin HAL managed module." TRUE) if(BUILD_GRAY2BIN_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( gray2bin diff --git a/src/modules/managed/components/gray2binv2/CMakeLists.txt b/src/modules/managed/components/gray2binv2/CMakeLists.txt index 8ae416be87..0c0fb4be86 100644 --- a/src/modules/managed/components/gray2binv2/CMakeLists.txt +++ b/src/modules/managed/components/gray2binv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_GRAY2BINV2_MANAGED_MODULE "Built the Gray2Bin V2 HAL managed module." TRUE) if(BUILD_GRAY2BINV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( gray2binv2 diff --git a/src/modules/managed/components/hbridge/CMakeLists.txt b/src/modules/managed/components/hbridge/CMakeLists.txt index aeb637cc1a..a8a47f8a11 100644 --- a/src/modules/managed/components/hbridge/CMakeLists.txt +++ b/src/modules/managed/components/hbridge/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_HBRIDGE_MANAGED_MODULE "Built the HBridge HAL managed module." TRUE) if(BUILD_HBRIDGE_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( hbridge diff --git a/src/modules/managed/components/hbridgev2/CMakeLists.txt b/src/modules/managed/components/hbridgev2/CMakeLists.txt index 66c0d8b5e0..bbc1bcd597 100644 --- a/src/modules/managed/components/hbridgev2/CMakeLists.txt +++ b/src/modules/managed/components/hbridgev2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_HBRIDGEV2_MANAGED_MODULE "Built the HBridge V2 HAL managed module." TRUE) if(BUILD_HBRIDGEV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( hbridgev2 diff --git a/src/modules/managed/components/hypot/CMakeLists.txt b/src/modules/managed/components/hypot/CMakeLists.txt index 8235d93895..ea3777163e 100644 --- a/src/modules/managed/components/hypot/CMakeLists.txt +++ b/src/modules/managed/components/hypot/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_HYPOT_MANAGED_MODULE "Built the Hypot HAL managed module." TRUE) if(BUILD_HYPOT_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( hypot diff --git a/src/modules/managed/components/hypotv2/CMakeLists.txt b/src/modules/managed/components/hypotv2/CMakeLists.txt index c6f4519133..f63eef5ee7 100644 --- a/src/modules/managed/components/hypotv2/CMakeLists.txt +++ b/src/modules/managed/components/hypotv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_HYPOTV2_MANAGED_MODULE "Built the Hypot V2 HAL managed module." TRUE) if(BUILD_HYPOTV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( hypotv2 diff --git a/src/modules/managed/components/icomp/CMakeLists.txt b/src/modules/managed/components/icomp/CMakeLists.txt index 4bc8e2ff6a..28418bd272 100644 --- a/src/modules/managed/components/icomp/CMakeLists.txt +++ b/src/modules/managed/components/icomp/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_ICOMP_MANAGED_MODULE "Built the IComp HAL managed module." TRUE) if(BUILD_ICOMP_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(icomp MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::icomp ALIAS icomp) diff --git a/src/modules/managed/components/idb/CMakeLists.txt b/src/modules/managed/components/idb/CMakeLists.txt index 6a9ae0f9b1..c72e7079b2 100644 --- a/src/modules/managed/components/idb/CMakeLists.txt +++ b/src/modules/managed/components/idb/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_IDB_MANAGED_MODULE "Built the IDB HAL managed module." TRUE) if(BUILD_IDB_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( idb diff --git a/src/modules/managed/components/idbv2/CMakeLists.txt b/src/modules/managed/components/idbv2/CMakeLists.txt index 733ef5fae9..79d61d83a8 100644 --- a/src/modules/managed/components/idbv2/CMakeLists.txt +++ b/src/modules/managed/components/idbv2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_IDBV2_MANAGED_MODULE "Built the IDB V2 HAL managed module." TRUE) if(BUILD_IDBV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( idbv2 diff --git a/src/modules/managed/components/ilowpass/CMakeLists.txt b/src/modules/managed/components/ilowpass/CMakeLists.txt index d816f59c06..dd110863da 100644 --- a/src/modules/managed/components/ilowpass/CMakeLists.txt +++ b/src/modules/managed/components/ilowpass/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_ILOWPASS_MANAGED_MODULE "Built the ILowPass HAL managed module." TRUE) if(BUILD_ILOWPASS_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( ilowpass diff --git a/src/modules/managed/components/ilowpassv2/CMakeLists.txt b/src/modules/managed/components/ilowpassv2/CMakeLists.txt index 86381d369e..3eb2e71dd4 100644 --- a/src/modules/managed/components/ilowpassv2/CMakeLists.txt +++ b/src/modules/managed/components/ilowpassv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_ILOWPASSV2_MANAGED_MODULE "Built the ILowPass V2 HAL managed module." TRUE) if(BUILD_ILOWPASSV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( ilowpassv2 diff --git a/src/modules/managed/components/indextablev2/CMakeLists.txt b/src/modules/managed/components/indextablev2/CMakeLists.txt index 207e512478..16223cbbd4 100644 --- a/src/modules/managed/components/indextablev2/CMakeLists.txt +++ b/src/modules/managed/components/indextablev2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_INDEXTABLEV2_MANAGED_MODULE "Built the IndexTable V2 HAL managed module." TRUE) if(BUILD_INDEXTABLEV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( indextablev2 diff --git a/src/modules/managed/components/integ/CMakeLists.txt b/src/modules/managed/components/integ/CMakeLists.txt index 852614508a..b4ef66820b 100644 --- a/src/modules/managed/components/integ/CMakeLists.txt +++ b/src/modules/managed/components/integ/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_INTEG_MANAGED_MODULE "Built the Integ HAL managed module." TRUE) if(BUILD_INTEG_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( integ diff --git a/src/modules/managed/components/integv2/CMakeLists.txt b/src/modules/managed/components/integv2/CMakeLists.txt index e359024ae7..7c35e6c9f6 100644 --- a/src/modules/managed/components/integv2/CMakeLists.txt +++ b/src/modules/managed/components/integv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_INTEGV2_MANAGED_MODULE "Built the Integ V2 HAL managed module." TRUE) if(BUILD_INTEGV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( integv2 diff --git a/src/modules/managed/components/interpolator/CMakeLists.txt b/src/modules/managed/components/interpolator/CMakeLists.txt index 73cfe056af..c2b7bb78a5 100644 --- a/src/modules/managed/components/interpolator/CMakeLists.txt +++ b/src/modules/managed/components/interpolator/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_INTERPOLATE_MANAGED_MODULE "Built the Interpolate HAL managed module." TRUE) if(BUILD_INTERPOLATE_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(interpolator MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::interpolator ALIAS interpolator) diff --git a/src/modules/managed/components/invert/CMakeLists.txt b/src/modules/managed/components/invert/CMakeLists.txt index 239d5c5380..b5311b3717 100644 --- a/src/modules/managed/components/invert/CMakeLists.txt +++ b/src/modules/managed/components/invert/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_INVERT_MANAGED_MODULE "Built the Invert HAL managed module." TRUE) if(BUILD_INVERT_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( invert diff --git a/src/modules/managed/components/invertv2/CMakeLists.txt b/src/modules/managed/components/invertv2/CMakeLists.txt index c53487826f..6ff6e9b54d 100644 --- a/src/modules/managed/components/invertv2/CMakeLists.txt +++ b/src/modules/managed/components/invertv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_INVERTV2_MANAGED_MODULE "Built the Invert V2 HAL managed module." TRUE) if(BUILD_INVERTV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( invertv2 diff --git a/src/modules/managed/components/io_muxn/CMakeLists.txt b/src/modules/managed/components/io_muxn/CMakeLists.txt index 93dd63488f..26490cada0 100644 --- a/src/modules/managed/components/io_muxn/CMakeLists.txt +++ b/src/modules/managed/components/io_muxn/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_IO_MUXN_MANAGED_MODULE "Built the IO MuxN HAL managed module." TRUE) if(BUILD_IO_MUXN_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( io_muxn diff --git a/src/modules/managed/components/io_muxnv2/CMakeLists.txt b/src/modules/managed/components/io_muxnv2/CMakeLists.txt index b10b5fe751..30725d62ce 100644 --- a/src/modules/managed/components/io_muxnv2/CMakeLists.txt +++ b/src/modules/managed/components/io_muxnv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_IO_MUXNV2_MANAGED_MODULE "Built the IO MuxN V2 HAL managed module." TRUE) if(BUILD_IO_MUXNV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( io_muxnv2 diff --git a/src/modules/managed/components/iring_demo/CMakeLists.txt b/src/modules/managed/components/iring_demo/CMakeLists.txt index d283870320..0641f5b7b6 100644 --- a/src/modules/managed/components/iring_demo/CMakeLists.txt +++ b/src/modules/managed/components/iring_demo/CMakeLists.txt @@ -30,7 +30,7 @@ option(BUILD_IRING_MANAGED_MODULE "Built the IRing HAL managed module." TRUE) if(BUILD_IRING_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(iring MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::iring ALIAS iring) diff --git a/src/modules/managed/components/joyhandle/CMakeLists.txt b/src/modules/managed/components/joyhandle/CMakeLists.txt index 12a0f2190c..17253d7767 100644 --- a/src/modules/managed/components/joyhandle/CMakeLists.txt +++ b/src/modules/managed/components/joyhandle/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_JOYHANDLE_MANAGED_MODULE "Built the JoyHandle HAL managed module." TRUE) if(BUILD_JOYHANDLE_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( joyhandle diff --git a/src/modules/managed/components/joyhandlev2/CMakeLists.txt b/src/modules/managed/components/joyhandlev2/CMakeLists.txt index a65fe63596..e4eb063418 100644 --- a/src/modules/managed/components/joyhandlev2/CMakeLists.txt +++ b/src/modules/managed/components/joyhandlev2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_JOYHANDLEV2_MANAGED_MODULE "Built the JoyHandle V2 HAL managed module." TRUE) if(BUILD_JOYHANDLEV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( joyhandlev2 diff --git a/src/modules/managed/components/jplanner/CMakeLists.txt b/src/modules/managed/components/jplanner/CMakeLists.txt index 2156a69e0b..4145ed9235 100644 --- a/src/modules/managed/components/jplanner/CMakeLists.txt +++ b/src/modules/managed/components/jplanner/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_JPLAN_MANAGED_MODULE "Built the JPlan HAL managed module." TRUE) if(BUILD_JPLAN_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(jplan MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::jplan ALIAS jplan) diff --git a/src/modules/managed/components/knob2float/CMakeLists.txt b/src/modules/managed/components/knob2float/CMakeLists.txt index 10b995161c..84427360eb 100644 --- a/src/modules/managed/components/knob2float/CMakeLists.txt +++ b/src/modules/managed/components/knob2float/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_KNOB2FLOAT_MANAGED_MODULE "Built the Knob2Float HAL managed module." TRUE) if(BUILD_KNOB2FLOAT_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( knob2float diff --git a/src/modules/managed/components/knob2floatv2/CMakeLists.txt b/src/modules/managed/components/knob2floatv2/CMakeLists.txt index 06facb4d41..debb6d53af 100644 --- a/src/modules/managed/components/knob2floatv2/CMakeLists.txt +++ b/src/modules/managed/components/knob2floatv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_KNOB2FLOATV2_MANAGED_MODULE "Built the Knob2Float V2 HAL managed module." TRUE) if(BUILD_KNOB2FLOATV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( knob2floatv2 diff --git a/src/modules/managed/components/latencybins/CMakeLists.txt b/src/modules/managed/components/latencybins/CMakeLists.txt index c833834635..520b267182 100644 --- a/src/modules/managed/components/latencybins/CMakeLists.txt +++ b/src/modules/managed/components/latencybins/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_LATENCYBINS_MANAGED_MODULE "Built the Latency Bins HAL managed module." TRUE) if(BUILD_LATENCYBINS_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( latencybins diff --git a/src/modules/managed/components/latencybinsv2/CMakeLists.txt b/src/modules/managed/components/latencybinsv2/CMakeLists.txt index 7d595dba73..c430c31260 100644 --- a/src/modules/managed/components/latencybinsv2/CMakeLists.txt +++ b/src/modules/managed/components/latencybinsv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_LATENCYBINSV2_MANAGED_MODULE "Built the Latency Bins V2 HAL managed module." TRUE) if(BUILD_LATENCYBINSV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( latencybinsv2 diff --git a/src/modules/managed/components/lcd/CMakeLists.txt b/src/modules/managed/components/lcd/CMakeLists.txt index e5786458e3..355a628e85 100644 --- a/src/modules/managed/components/lcd/CMakeLists.txt +++ b/src/modules/managed/components/lcd/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_LCD_MANAGED_MODULE "Built the LCD HAL managed module." TRUE) if(BUILD_LCD_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(lcd MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::lcd ALIAS lcd) diff --git a/src/modules/managed/components/led_dim/CMakeLists.txt b/src/modules/managed/components/led_dim/CMakeLists.txt index 896bbab5ea..5ae91fbf16 100644 --- a/src/modules/managed/components/led_dim/CMakeLists.txt +++ b/src/modules/managed/components/led_dim/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_LED_DIM_MANAGED_MODULE "Built the Led Dim HAL managed module." TRUE) if(BUILD_LED_DIM_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( led_dim diff --git a/src/modules/managed/components/led_dimv2/CMakeLists.txt b/src/modules/managed/components/led_dimv2/CMakeLists.txt index 1ebdb0e52f..54ce408f78 100644 --- a/src/modules/managed/components/led_dimv2/CMakeLists.txt +++ b/src/modules/managed/components/led_dimv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_LED_DIMV2_MANAGED_MODULE "Built the Led Dim V2 HAL managed module." TRUE) if(BUILD_LED_DIMV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( led_dimv2 diff --git a/src/modules/managed/components/lgantry/CMakeLists.txt b/src/modules/managed/components/lgantry/CMakeLists.txt index 0b3bb2bb0a..8e6187c4a0 100644 --- a/src/modules/managed/components/lgantry/CMakeLists.txt +++ b/src/modules/managed/components/lgantry/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_LGANTRY_MANAGED_MODULE "Built the L Gantry HAL managed module." TRUE) if(BUILD_LGANTRY_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( lgantry diff --git a/src/modules/managed/components/lgantryv2/CMakeLists.txt b/src/modules/managed/components/lgantryv2/CMakeLists.txt index e731c4daa2..18b0077e3f 100644 --- a/src/modules/managed/components/lgantryv2/CMakeLists.txt +++ b/src/modules/managed/components/lgantryv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_LGANTRYV2_MANAGED_MODULE "Built the L Gantry V2 HAL managed module." TRUE) if(BUILD_LGANTRYV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( lgantryv2 diff --git a/src/modules/managed/components/limit1/CMakeLists.txt b/src/modules/managed/components/limit1/CMakeLists.txt index d27c99128f..1cc3b51a6c 100644 --- a/src/modules/managed/components/limit1/CMakeLists.txt +++ b/src/modules/managed/components/limit1/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_LIMIT1_MANAGED_MODULE "Built the Limit1 HAL managed module." TRUE) if(BUILD_LIMIT1_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( limit1 diff --git a/src/modules/managed/components/limit1v2/CMakeLists.txt b/src/modules/managed/components/limit1v2/CMakeLists.txt index 295ca2c373..8c672285d1 100644 --- a/src/modules/managed/components/limit1v2/CMakeLists.txt +++ b/src/modules/managed/components/limit1v2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_LIMIT1V2_MANAGED_MODULE "Built the Limit1 V2 HAL managed module." TRUE) if(BUILD_LIMIT1V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( limit1v2 diff --git a/src/modules/managed/components/limit2/CMakeLists.txt b/src/modules/managed/components/limit2/CMakeLists.txt index 8fbc928956..a88e72623f 100644 --- a/src/modules/managed/components/limit2/CMakeLists.txt +++ b/src/modules/managed/components/limit2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_LIMIT2_MANAGED_MODULE "Built the Limit2 HAL managed module." TRUE) if(BUILD_LIMIT2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( limit2 diff --git a/src/modules/managed/components/limit2v2/CMakeLists.txt b/src/modules/managed/components/limit2v2/CMakeLists.txt index 29ead3824e..258942e5f3 100644 --- a/src/modules/managed/components/limit2v2/CMakeLists.txt +++ b/src/modules/managed/components/limit2v2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_LIMIT2V2_MANAGED_MODULE "Built the Limit2 V2 HAL managed module." TRUE) if(BUILD_LIMIT2V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( limit2v2 diff --git a/src/modules/managed/components/limit3/CMakeLists.txt b/src/modules/managed/components/limit3/CMakeLists.txt index e7975ab99c..56fd037d16 100644 --- a/src/modules/managed/components/limit3/CMakeLists.txt +++ b/src/modules/managed/components/limit3/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_LIMIT3_MANAGED_MODULE "Built the Limit3 HAL managed module." TRUE) if(BUILD_LIMIT3_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( limit3 diff --git a/src/modules/managed/components/limit3v2/CMakeLists.txt b/src/modules/managed/components/limit3v2/CMakeLists.txt index 79bfdd1fb0..163529172f 100644 --- a/src/modules/managed/components/limit3v2/CMakeLists.txt +++ b/src/modules/managed/components/limit3v2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_LIMIT3V2_MANAGED_MODULE "Built the Limit3 V2 HAL managed module." TRUE) if(BUILD_LIMIT3V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( limit3v2 diff --git a/src/modules/managed/components/lincurve/CMakeLists.txt b/src/modules/managed/components/lincurve/CMakeLists.txt index ff15e6834f..ece52fc681 100644 --- a/src/modules/managed/components/lincurve/CMakeLists.txt +++ b/src/modules/managed/components/lincurve/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_LINCURVE_MANAGED_MODULE "Built the Lincurve HAL managed module." TRUE) if(BUILD_LINCURVE_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( lincurve diff --git a/src/modules/managed/components/lincurvev2/CMakeLists.txt b/src/modules/managed/components/lincurvev2/CMakeLists.txt index 1dcd5c74bf..3b481a4500 100644 --- a/src/modules/managed/components/lincurvev2/CMakeLists.txt +++ b/src/modules/managed/components/lincurvev2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_LINCURVEV2_MANAGED_MODULE "Built the Lincurve V2 HAL managed module." TRUE) if(BUILD_LINCURVEV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( lincurvev2 diff --git a/src/modules/managed/components/logic/CMakeLists.txt b/src/modules/managed/components/logic/CMakeLists.txt index 71394e6ce5..ebe71aa21e 100644 --- a/src/modules/managed/components/logic/CMakeLists.txt +++ b/src/modules/managed/components/logic/CMakeLists.txt @@ -23,3 +23,22 @@ # # ##################################################################### # ~~~ + +option(BUILD_LOGIC_MANAGED_MODULE "Built the Logic HAL managed module." TRUE) + +if(BUILD_LOGIC_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + logic + SOURCE + src/logic.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_dependencies(logic comp_executable) +endif() diff --git a/src/modules/managed/components/lowpass/CMakeLists.txt b/src/modules/managed/components/lowpass/CMakeLists.txt index ae570d63b5..a65779948a 100644 --- a/src/modules/managed/components/lowpass/CMakeLists.txt +++ b/src/modules/managed/components/lowpass/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_LOWPASS_MANAGED_MODULE "Built the LowPass HAL managed module." TRUE) if(BUILD_LOWPASS_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( lowpass diff --git a/src/modules/managed/components/lowpassv2/CMakeLists.txt b/src/modules/managed/components/lowpassv2/CMakeLists.txt index 3a95cce063..111e990686 100644 --- a/src/modules/managed/components/lowpassv2/CMakeLists.txt +++ b/src/modules/managed/components/lowpassv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_LOWPASSV2_MANAGED_MODULE "Built the LowPass V2 HAL managed module." TRUE) if(BUILD_LOWPASSV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( lowpassv2 diff --git a/src/modules/managed/components/lut5/CMakeLists.txt b/src/modules/managed/components/lut5/CMakeLists.txt index 98a25d7121..12372a454b 100644 --- a/src/modules/managed/components/lut5/CMakeLists.txt +++ b/src/modules/managed/components/lut5/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_LUT5_MANAGED_MODULE "Built the Lut5 HAL managed module." TRUE) if(BUILD_LUT5_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( lut5 diff --git a/src/modules/managed/components/lut5v2/CMakeLists.txt b/src/modules/managed/components/lut5v2/CMakeLists.txt index 048d7340d3..6d82fe37c6 100644 --- a/src/modules/managed/components/lut5v2/CMakeLists.txt +++ b/src/modules/managed/components/lut5v2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_LUT5V2_MANAGED_MODULE "Built the LUT5 v2 HAL managed module." TRUE) if(BUILD_LUT5V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( lut5v2 diff --git a/src/modules/managed/components/lutn/CMakeLists.txt b/src/modules/managed/components/lutn/CMakeLists.txt index 3918e2b7d2..b55dd37109 100644 --- a/src/modules/managed/components/lutn/CMakeLists.txt +++ b/src/modules/managed/components/lutn/CMakeLists.txt @@ -29,7 +29,7 @@ option(BUILD_LUTN_MANAGED_MODULE "Built the LUTN HAL managed module." TRUE) if(BUILD_LUTN_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(lutn MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::lutn ALIAS lutn) diff --git a/src/modules/managed/components/lutn_demo/CMakeLists.txt b/src/modules/managed/components/lutn_demo/CMakeLists.txt index f622f85670..1b23eefd56 100644 --- a/src/modules/managed/components/lutn_demo/CMakeLists.txt +++ b/src/modules/managed/components/lutn_demo/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_LUTN_DEMO_MANAGED_MODULE "Built the LUTN DEMO HAL managed module." TRUE) if(BUILD_LUTN_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(lutn_demo MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::lutn_demo ALIAS lutn_demo) diff --git a/src/modules/managed/components/maj3/CMakeLists.txt b/src/modules/managed/components/maj3/CMakeLists.txt index efb7149fee..26432d68df 100644 --- a/src/modules/managed/components/maj3/CMakeLists.txt +++ b/src/modules/managed/components/maj3/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MAJ3_MANAGED_MODULE "Built the Maj3 HAL managed module." TRUE) if(BUILD_MAJ3_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( maj3 diff --git a/src/modules/managed/components/maj3v2/CMakeLists.txt b/src/modules/managed/components/maj3v2/CMakeLists.txt index bb88d1b59f..50dfc60760 100644 --- a/src/modules/managed/components/maj3v2/CMakeLists.txt +++ b/src/modules/managed/components/maj3v2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MAJ3V2_MANAGED_MODULE "Built the Maj3 V2 HAL managed module." TRUE) if(BUILD_MAJ3V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( maj3v2 diff --git a/src/modules/managed/components/match8/CMakeLists.txt b/src/modules/managed/components/match8/CMakeLists.txt index c39ccd212f..c81daf359a 100644 --- a/src/modules/managed/components/match8/CMakeLists.txt +++ b/src/modules/managed/components/match8/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MATCH8_MANAGED_MODULE "Built the Match8 HAL managed module." TRUE) if(BUILD_MATCH8_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( match8 diff --git a/src/modules/managed/components/match8v2/CMakeLists.txt b/src/modules/managed/components/match8v2/CMakeLists.txt index 571c67bf96..95efd06665 100644 --- a/src/modules/managed/components/match8v2/CMakeLists.txt +++ b/src/modules/managed/components/match8v2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_MATCH8V2_MANAGED_MODULE "Built the Match8 V2 HAL managed module." TRUE) if(BUILD_MATCH8V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( match8v2 diff --git a/src/modules/managed/components/matrix_kb/CMakeLists.txt b/src/modules/managed/components/matrix_kb/CMakeLists.txt index 441676b298..63a32b79d9 100644 --- a/src/modules/managed/components/matrix_kb/CMakeLists.txt +++ b/src/modules/managed/components/matrix_kb/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_MATRIX_KB_MANAGED_MODULE "Built the Matrix KB HAL managed module." TRUE) if(BUILD_MATRIX_KB_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(matrix_kb MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::matrix_kb ALIAS matrix_kb) diff --git a/src/modules/managed/components/maxn/CMakeLists.txt b/src/modules/managed/components/maxn/CMakeLists.txt index 1a0b327ee5..a087431ca4 100644 --- a/src/modules/managed/components/maxn/CMakeLists.txt +++ b/src/modules/managed/components/maxn/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MAXN_MANAGED_MODULE "Built the MaxN HAL managed module." TRUE) if(BUILD_MAXN_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( maxn diff --git a/src/modules/managed/components/maxnv2/CMakeLists.txt b/src/modules/managed/components/maxnv2/CMakeLists.txt index 6d24850e49..9191f6655e 100644 --- a/src/modules/managed/components/maxnv2/CMakeLists.txt +++ b/src/modules/managed/components/maxnv2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MAXNV2_MANAGED_MODULE "Built the MaxN V2 HAL managed module." TRUE) if(BUILD_MAXNV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( maxnv2 diff --git a/src/modules/managed/components/mesa_pktgyro_test/CMakeLists.txt b/src/modules/managed/components/mesa_pktgyro_test/CMakeLists.txt index 71394e6ce5..5cb065d272 100644 --- a/src/modules/managed/components/mesa_pktgyro_test/CMakeLists.txt +++ b/src/modules/managed/components/mesa_pktgyro_test/CMakeLists.txt @@ -23,3 +23,27 @@ # # ##################################################################### # ~~~ + +option(BUILD_MESA_PTHGYRO_TEST_MANAGED_MODULE + "Built the Mesa Pktgyro Test HAL managed module." TRUE) + +if(BUILD_MESA_PTHGYRO_TEST_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + mesa_pktgyro_test + SOURCE + src/mesa_pktgyro_test.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + LINK_LIBRARIES + hostmot2_api + hostmot2_bitfile + user_pci + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_dependencies(mesa_pktgyro_test comp_executable) +endif() diff --git a/src/modules/managed/components/mesa_pktgyro_test/src/mesa_pktgyro_test.comp b/src/modules/managed/components/mesa_pktgyro_test/src/mesa_pktgyro_test.comp index 29cd480a45..7619453dc4 100644 --- a/src/modules/managed/components/mesa_pktgyro_test/src/mesa_pktgyro_test.comp +++ b/src/modules/managed/components/mesa_pktgyro_test/src/mesa_pktgyro_test.comp @@ -51,7 +51,7 @@ author "Boris Skegin"; license "GPL"; include ; -include "../drivers/mesa-hostmot2/hostmot2.h"; +include "hostmot2/hostmot2.h"; pin out s32 rxbytes "Number of Bytes received or negative Error code"; diff --git a/src/modules/managed/components/message/CMakeLists.txt b/src/modules/managed/components/message/CMakeLists.txt index a13389229a..d41de8044e 100644 --- a/src/modules/managed/components/message/CMakeLists.txt +++ b/src/modules/managed/components/message/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_MESSAGE_MANAGED_MODULE "Built the Message HAL managed module." TRUE) if(BUILD_MESSAGE_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( message diff --git a/src/modules/managed/components/messagev2/CMakeLists.txt b/src/modules/managed/components/messagev2/CMakeLists.txt index 571b855e13..1f9eaa3e6f 100644 --- a/src/modules/managed/components/messagev2/CMakeLists.txt +++ b/src/modules/managed/components/messagev2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_MESSAGEV2_MANAGED_MODULE "Built the Message V2 HAL managed module." TRUE) if(BUILD_MESSAGEV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( messagev2 diff --git a/src/modules/managed/components/minmax/CMakeLists.txt b/src/modules/managed/components/minmax/CMakeLists.txt index 2641aea739..a3b3284e25 100644 --- a/src/modules/managed/components/minmax/CMakeLists.txt +++ b/src/modules/managed/components/minmax/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MINMAX_MANAGED_MODULE "Built the MinMax HAL managed module." TRUE) if(BUILD_MINMAX_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( minmax diff --git a/src/modules/managed/components/minmaxv2/CMakeLists.txt b/src/modules/managed/components/minmaxv2/CMakeLists.txt index f9c6f1e9f1..e06cf5fcaf 100644 --- a/src/modules/managed/components/minmaxv2/CMakeLists.txt +++ b/src/modules/managed/components/minmaxv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_MINMAXV2_MANAGED_MODULE "Built the MinMax V2 HAL managed module." TRUE) if(BUILD_MINMAXV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( minmaxv2 diff --git a/src/modules/managed/components/minn/CMakeLists.txt b/src/modules/managed/components/minn/CMakeLists.txt index 84b97af097..9dd9ea1556 100644 --- a/src/modules/managed/components/minn/CMakeLists.txt +++ b/src/modules/managed/components/minn/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MINN_MANAGED_MODULE "Built the MinN HAL managed module." TRUE) if(BUILD_MINN_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( minn diff --git a/src/modules/managed/components/minnv2/CMakeLists.txt b/src/modules/managed/components/minnv2/CMakeLists.txt index fd6effb468..6a2a1799d5 100644 --- a/src/modules/managed/components/minnv2/CMakeLists.txt +++ b/src/modules/managed/components/minnv2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MINNV2_MANAGED_MODULE "Built the MinN V2 HAL managed module." TRUE) if(BUILD_MINNV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( minnv2 diff --git a/src/modules/managed/components/mult2/CMakeLists.txt b/src/modules/managed/components/mult2/CMakeLists.txt index 9eb2b411a8..b99e94f40c 100644 --- a/src/modules/managed/components/mult2/CMakeLists.txt +++ b/src/modules/managed/components/mult2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MULT2_MANAGED_MODULE "Built the Mult2 HAL managed module." TRUE) if(BUILD_MULT2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( mult2 diff --git a/src/modules/managed/components/mult2v2/CMakeLists.txt b/src/modules/managed/components/mult2v2/CMakeLists.txt index 24f73c37aa..bec97937df 100644 --- a/src/modules/managed/components/mult2v2/CMakeLists.txt +++ b/src/modules/managed/components/mult2v2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_MULT2V2_MANAGED_MODULE "Built the Mult2 V2 HAL managed module." TRUE) if(BUILD_MULT2V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( mult2v2 diff --git a/src/modules/managed/components/multiclick/CMakeLists.txt b/src/modules/managed/components/multiclick/CMakeLists.txt index e0faf58b62..c41c4833d7 100644 --- a/src/modules/managed/components/multiclick/CMakeLists.txt +++ b/src/modules/managed/components/multiclick/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_MULTICLICK_MANAGED_MODULE "Built the Multiclick HAL managed module." TRUE) if(BUILD_MULTICLICK_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( multiclick diff --git a/src/modules/managed/components/multiclickv2/CMakeLists.txt b/src/modules/managed/components/multiclickv2/CMakeLists.txt index e28762180e..c4bf136aff 100644 --- a/src/modules/managed/components/multiclickv2/CMakeLists.txt +++ b/src/modules/managed/components/multiclickv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_MULTICLICKV2_MANAGED_MODULE "Built the Multiclick V2 HAL managed module." TRUE) if(BUILD_MULTICLICKV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( multiclickv2 diff --git a/src/modules/managed/components/multiswitch/CMakeLists.txt b/src/modules/managed/components/multiswitch/CMakeLists.txt index 0287801675..36a66e0818 100644 --- a/src/modules/managed/components/multiswitch/CMakeLists.txt +++ b/src/modules/managed/components/multiswitch/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_MULTISWITCH_MANAGED_MODULE "Built the Multiswitch HAL managed module." TRUE) if(BUILD_MULTISWITCH_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( multiswitch diff --git a/src/modules/managed/components/multiswitchv2/CMakeLists.txt b/src/modules/managed/components/multiswitchv2/CMakeLists.txt index 408ea604ff..cdb3b99c22 100644 --- a/src/modules/managed/components/multiswitchv2/CMakeLists.txt +++ b/src/modules/managed/components/multiswitchv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_MULTISWITCHV2_MANAGED_MODULE "Built the Multiswitch V2 HAL managed module." TRUE) if(BUILD_MULTISWITCHV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( multiswitchv2 diff --git a/src/modules/managed/components/mux16/CMakeLists.txt b/src/modules/managed/components/mux16/CMakeLists.txt index 88a1f720f0..4ae8333eff 100644 --- a/src/modules/managed/components/mux16/CMakeLists.txt +++ b/src/modules/managed/components/mux16/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MUX16_MANAGED_MODULE "Built the Mux16 HAL managed module." TRUE) if(BUILD_MUX16_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( mux16 diff --git a/src/modules/managed/components/mux16v2/CMakeLists.txt b/src/modules/managed/components/mux16v2/CMakeLists.txt index ff15768683..efefe28b6a 100644 --- a/src/modules/managed/components/mux16v2/CMakeLists.txt +++ b/src/modules/managed/components/mux16v2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_MUX16V2_MANAGED_MODULE "Built the Mux16 V2 HAL managed module." TRUE) if(BUILD_MUX16V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( mux16v2 diff --git a/src/modules/managed/components/mux2/CMakeLists.txt b/src/modules/managed/components/mux2/CMakeLists.txt index bd04bf4d26..f6fb199089 100644 --- a/src/modules/managed/components/mux2/CMakeLists.txt +++ b/src/modules/managed/components/mux2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MUX2_MANAGED_MODULE "Built the Mux2 HAL managed module." TRUE) if(BUILD_MUX2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( mux2 diff --git a/src/modules/managed/components/mux2v2/CMakeLists.txt b/src/modules/managed/components/mux2v2/CMakeLists.txt index c028a75402..c400c1aa66 100644 --- a/src/modules/managed/components/mux2v2/CMakeLists.txt +++ b/src/modules/managed/components/mux2v2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MUX2V2_MANAGED_MODULE "Built the Mux2 V2 HAL managed module." TRUE) if(BUILD_MUX2V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( mux2v2 diff --git a/src/modules/managed/components/mux4/CMakeLists.txt b/src/modules/managed/components/mux4/CMakeLists.txt index 3e0310c0f4..ee411e35ed 100644 --- a/src/modules/managed/components/mux4/CMakeLists.txt +++ b/src/modules/managed/components/mux4/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MUX4_MANAGED_MODULE "Built the Mux4 HAL managed module." TRUE) if(BUILD_MUX4_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( mux4 diff --git a/src/modules/managed/components/mux4v2/CMakeLists.txt b/src/modules/managed/components/mux4v2/CMakeLists.txt index ff2f606b8d..874be9e04c 100644 --- a/src/modules/managed/components/mux4v2/CMakeLists.txt +++ b/src/modules/managed/components/mux4v2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MUX4V2_MANAGED_MODULE "Built the Mux4 V2 HAL managed module." TRUE) if(BUILD_MUX4V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( mux4v2 diff --git a/src/modules/managed/components/mux8/CMakeLists.txt b/src/modules/managed/components/mux8/CMakeLists.txt index 94c11cb0bf..6e4958d82f 100644 --- a/src/modules/managed/components/mux8/CMakeLists.txt +++ b/src/modules/managed/components/mux8/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MUX8_MANAGED_MODULE "Built the Mux8 HAL managed module." TRUE) if(BUILD_MUX8_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( mux8 diff --git a/src/modules/managed/components/mux8v2/CMakeLists.txt b/src/modules/managed/components/mux8v2/CMakeLists.txt index 1dd382a1d3..723ce1d0ec 100644 --- a/src/modules/managed/components/mux8v2/CMakeLists.txt +++ b/src/modules/managed/components/mux8v2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MUX8V2_MANAGED_MODULE "Built the Mux8 V2 HAL managed module." TRUE) if(BUILD_MUX8V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( mux8v2 diff --git a/src/modules/managed/components/mux_generic/CMakeLists.txt b/src/modules/managed/components/mux_generic/CMakeLists.txt index ab4a2216f4..3fd1c49765 100644 --- a/src/modules/managed/components/mux_generic/CMakeLists.txt +++ b/src/modules/managed/components/mux_generic/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_MUX_GENERIC_MANAGED_MODULE "Built the Mux Generic HAL managed module." TRUE) if(BUILD_MUX_GENERIC_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(mux_generic MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::mux_generic ALIAS mux_generic) diff --git a/src/modules/managed/components/muxn/CMakeLists.txt b/src/modules/managed/components/muxn/CMakeLists.txt index fcc113bf9d..fb964d7b2a 100644 --- a/src/modules/managed/components/muxn/CMakeLists.txt +++ b/src/modules/managed/components/muxn/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MUXN_MANAGED_MODULE "Built the MuxN HAL managed module." TRUE) if(BUILD_MUXN_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( muxn diff --git a/src/modules/managed/components/muxn_u32/CMakeLists.txt b/src/modules/managed/components/muxn_u32/CMakeLists.txt index 5e3e99d66e..95545e6259 100644 --- a/src/modules/managed/components/muxn_u32/CMakeLists.txt +++ b/src/modules/managed/components/muxn_u32/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_MUXN_U32_MANAGED_MODULE "Built the MuxN U32 HAL managed module." TRUE) if(BUILD_MUXN_U32_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( muxn_u32 diff --git a/src/modules/managed/components/muxn_u32v2/CMakeLists.txt b/src/modules/managed/components/muxn_u32v2/CMakeLists.txt index ce426ff3fc..90abb319d5 100644 --- a/src/modules/managed/components/muxn_u32v2/CMakeLists.txt +++ b/src/modules/managed/components/muxn_u32v2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_MUXN_U32V2_MANAGED_MODULE "Built the MuxN U32 V2 HAL managed module." TRUE) if(BUILD_MUXN_U32V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( muxn_u32v2 diff --git a/src/modules/managed/components/muxnv2/CMakeLists.txt b/src/modules/managed/components/muxnv2/CMakeLists.txt index 1118358cf0..0cba749b38 100644 --- a/src/modules/managed/components/muxnv2/CMakeLists.txt +++ b/src/modules/managed/components/muxnv2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_MUXNV2_MANAGED_MODULE "Built the MuxN V2 HAL managed module." TRUE) if(BUILD_MUXNV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( muxnv2 diff --git a/src/modules/managed/components/near/CMakeLists.txt b/src/modules/managed/components/near/CMakeLists.txt index e7ab8dbcda..611796dafb 100644 --- a/src/modules/managed/components/near/CMakeLists.txt +++ b/src/modules/managed/components/near/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_NEAR_MANAGED_MODULE "Built the Near HAL managed module." TRUE) if(BUILD_NEAR_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( near diff --git a/src/modules/managed/components/nearv2/CMakeLists.txt b/src/modules/managed/components/nearv2/CMakeLists.txt index e5250af5fc..0fb14e4281 100644 --- a/src/modules/managed/components/nearv2/CMakeLists.txt +++ b/src/modules/managed/components/nearv2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_NEARV2_MANAGED_MODULE "Built the Near V2 HAL managed module." TRUE) if(BUILD_NEARV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( nearv2 diff --git a/src/modules/managed/components/neg/CMakeLists.txt b/src/modules/managed/components/neg/CMakeLists.txt index d7a3d6b376..6bb916391a 100644 --- a/src/modules/managed/components/neg/CMakeLists.txt +++ b/src/modules/managed/components/neg/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_NEG_MANAGED_MODULE "Built the Neg HAL managed module." TRUE) if(BUILD_NEG_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( neg diff --git a/src/modules/managed/components/negv2/CMakeLists.txt b/src/modules/managed/components/negv2/CMakeLists.txt index b97127611b..c364a9817e 100644 --- a/src/modules/managed/components/negv2/CMakeLists.txt +++ b/src/modules/managed/components/negv2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_NEGV2_MANAGED_MODULE "Built the Neg V2 HAL managed module." TRUE) if(BUILD_NEGV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( negv2 diff --git a/src/modules/managed/components/not/CMakeLists.txt b/src/modules/managed/components/not/CMakeLists.txt index a85d777722..a1605ffbab 100644 --- a/src/modules/managed/components/not/CMakeLists.txt +++ b/src/modules/managed/components/not/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_NOT_MANAGED_MODULE "Built the Not HAL managed module." TRUE) if(BUILD_NOT_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( not diff --git a/src/modules/managed/components/notv2/CMakeLists.txt b/src/modules/managed/components/notv2/CMakeLists.txt index 2ac85fafea..38fca5137d 100644 --- a/src/modules/managed/components/notv2/CMakeLists.txt +++ b/src/modules/managed/components/notv2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_NOTV2_MANAGED_MODULE "Built the Not V2 HAL managed module." TRUE) if(BUILD_NOTV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( notv2 diff --git a/src/modules/managed/components/offset/CMakeLists.txt b/src/modules/managed/components/offset/CMakeLists.txt index e53476e28a..cc1bc5f831 100644 --- a/src/modules/managed/components/offset/CMakeLists.txt +++ b/src/modules/managed/components/offset/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_OFFSET_MANAGED_MODULE "Built the Offset HAL managed module." TRUE) if(BUILD_OFFSET_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( offset diff --git a/src/modules/managed/components/offsetn/CMakeLists.txt b/src/modules/managed/components/offsetn/CMakeLists.txt index b5bdd2f2d4..240889c25d 100644 --- a/src/modules/managed/components/offsetn/CMakeLists.txt +++ b/src/modules/managed/components/offsetn/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_OFFSETN_MANAGED_MODULE "Built the OffsetN HAL managed module." TRUE) if(BUILD_OFFSETN_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( offsetn diff --git a/src/modules/managed/components/offsetnv2/CMakeLists.txt b/src/modules/managed/components/offsetnv2/CMakeLists.txt index 347db9a0e3..ba5eaab4a8 100644 --- a/src/modules/managed/components/offsetnv2/CMakeLists.txt +++ b/src/modules/managed/components/offsetnv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_OFFSETNV2_MANAGED_MODULE "Built the OffsetM V2 HAL managed module." TRUE) if(BUILD_OFFSETNV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( offsetnv2 diff --git a/src/modules/managed/components/offsetv2/CMakeLists.txt b/src/modules/managed/components/offsetv2/CMakeLists.txt index c404a70d58..0d913dc918 100644 --- a/src/modules/managed/components/offsetv2/CMakeLists.txt +++ b/src/modules/managed/components/offsetv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_OFFSETV2_MANAGED_MODULE "Built the Offet V2 HAL managed module." TRUE) if(BUILD_OFFSETV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( offsetv2 diff --git a/src/modules/managed/components/oneshot/CMakeLists.txt b/src/modules/managed/components/oneshot/CMakeLists.txt index 1358bcfeee..00342f3a27 100644 --- a/src/modules/managed/components/oneshot/CMakeLists.txt +++ b/src/modules/managed/components/oneshot/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_ONESHOT_MANAGED_MODULE "Built the Oneshot HAL managed module." TRUE) if(BUILD_ONESHOT_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( oneshot diff --git a/src/modules/managed/components/oneshotv2/CMakeLists.txt b/src/modules/managed/components/oneshotv2/CMakeLists.txt index 0a915124cd..6b9abe9f47 100644 --- a/src/modules/managed/components/oneshotv2/CMakeLists.txt +++ b/src/modules/managed/components/oneshotv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_ONESHOTV2_MANAGED_MODULE "Built the Oneshot V2 HAL managed module." TRUE) if(BUILD_ONESHOTV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( oneshotv2 diff --git a/src/modules/managed/components/or2/CMakeLists.txt b/src/modules/managed/components/or2/CMakeLists.txt index a7bd776cf3..ae0c66cbb6 100644 --- a/src/modules/managed/components/or2/CMakeLists.txt +++ b/src/modules/managed/components/or2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_OR2_MANAGED_MODULE "Built the OR2 HAL managed module." TRUE) if(BUILD_OR2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( or2 diff --git a/src/modules/managed/components/or2v2/CMakeLists.txt b/src/modules/managed/components/or2v2/CMakeLists.txt index 88cf2ab184..a433aaa5f0 100644 --- a/src/modules/managed/components/or2v2/CMakeLists.txt +++ b/src/modules/managed/components/or2v2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_OR2V2_MANAGED_MODULE "Built the OR2 V2 HAL managed module." TRUE) if(BUILD_OR2V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( or2v2 diff --git a/src/modules/managed/components/orient/CMakeLists.txt b/src/modules/managed/components/orient/CMakeLists.txt index 58ba50063e..639981f084 100644 --- a/src/modules/managed/components/orient/CMakeLists.txt +++ b/src/modules/managed/components/orient/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_ORIENT_MANAGED_MODULE "Built the Orient HAL managed module." TRUE) if(BUILD_ORIENT_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( orient diff --git a/src/modules/managed/components/orientv2/CMakeLists.txt b/src/modules/managed/components/orientv2/CMakeLists.txt index 67ed6752e0..3d308cdf92 100644 --- a/src/modules/managed/components/orientv2/CMakeLists.txt +++ b/src/modules/managed/components/orientv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_ORIENTV2_MANAGED_MODULE "Built the Orient V2 HAL managed module." TRUE) if(BUILD_ORIENTV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( orientv2 diff --git a/src/modules/managed/components/orn/CMakeLists.txt b/src/modules/managed/components/orn/CMakeLists.txt index 4b57674ec0..1cebc18ef7 100644 --- a/src/modules/managed/components/orn/CMakeLists.txt +++ b/src/modules/managed/components/orn/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_ORN_MANAGED_MODULE "Built the ORN HAL managed module." TRUE) if(BUILD_ORN_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( orn diff --git a/src/modules/managed/components/ornv2/CMakeLists.txt b/src/modules/managed/components/ornv2/CMakeLists.txt index 0ca4655760..603a1b3293 100644 --- a/src/modules/managed/components/ornv2/CMakeLists.txt +++ b/src/modules/managed/components/ornv2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_ORNV2_MANAGED_MODULE "Built the ORN V2 HAL managed module." TRUE) if(BUILD_ORNV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( ornv2 diff --git a/src/modules/managed/components/out_to_io/CMakeLists.txt b/src/modules/managed/components/out_to_io/CMakeLists.txt index 6be4244968..8761763367 100644 --- a/src/modules/managed/components/out_to_io/CMakeLists.txt +++ b/src/modules/managed/components/out_to_io/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_OUT_TO_IO_MANAGED_MODULE "Built the Out to IO HAL managed module." TRUE) if(BUILD_OUT_TO_IO_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( out_to_io diff --git a/src/modules/managed/components/out_to_iov2/CMakeLists.txt b/src/modules/managed/components/out_to_iov2/CMakeLists.txt index 71fbcf0bfd..a6803f8702 100644 --- a/src/modules/managed/components/out_to_iov2/CMakeLists.txt +++ b/src/modules/managed/components/out_to_iov2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_OUT_TO_IOV2_MANAGED_MODULE "Built the Out to IO V2 HAL managed module." TRUE) if(BUILD_OUT_TO_IOV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( out_to_iov2 diff --git a/src/modules/managed/components/pattern/CMakeLists.txt b/src/modules/managed/components/pattern/CMakeLists.txt index 5f478dd606..a38780d3ba 100644 --- a/src/modules/managed/components/pattern/CMakeLists.txt +++ b/src/modules/managed/components/pattern/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_PATTERN_MANAGED_MODULE "Built the Pattern HAL managed module." TRUE) if(BUILD_PATTERN_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( pattern diff --git a/src/modules/managed/components/pbmsgs/CMakeLists.txt b/src/modules/managed/components/pbmsgs/CMakeLists.txt index 910669bd41..bc2264c218 100644 --- a/src/modules/managed/components/pbmsgs/CMakeLists.txt +++ b/src/modules/managed/components/pbmsgs/CMakeLists.txt @@ -29,7 +29,7 @@ option(BUILD_PBMSGS_MANAGED_MODULE "Built the PBMsgs HAL managed module." TRUE) if(BUILD_PBMSGS_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(pbmsgs MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::pbmsgs ALIAS pbmsgs) diff --git a/src/modules/managed/components/pbring/CMakeLists.txt b/src/modules/managed/components/pbring/CMakeLists.txt index c57b5ed070..17a3c40f79 100644 --- a/src/modules/managed/components/pbring/CMakeLists.txt +++ b/src/modules/managed/components/pbring/CMakeLists.txt @@ -29,7 +29,7 @@ option(BUILD_PBRING_MANAGED_MODULE "Built the PBRing HAL managed module." TRUE) if(BUILD_PBRING_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(pbring MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::pbring ALIAS pbring) diff --git a/src/modules/managed/components/pepper/CMakeLists.txt b/src/modules/managed/components/pepper/CMakeLists.txt index c622352b01..f803cbc435 100644 --- a/src/modules/managed/components/pepper/CMakeLists.txt +++ b/src/modules/managed/components/pepper/CMakeLists.txt @@ -29,7 +29,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") TRUE) if(BUILD_PEPPER_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(pepper MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::pepper ALIAS pepper) diff --git a/src/modules/managed/components/period/CMakeLists.txt b/src/modules/managed/components/period/CMakeLists.txt index 8864f29e66..4207f14dcd 100644 --- a/src/modules/managed/components/period/CMakeLists.txt +++ b/src/modules/managed/components/period/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_PERIOD_MANAGED_MODULE "Built the Period HAL managed module." TRUE) if(BUILD_PERIOD_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( period diff --git a/src/modules/managed/components/pid/CMakeLists.txt b/src/modules/managed/components/pid/CMakeLists.txt index da8329fd02..d8be9e6cdd 100644 --- a/src/modules/managed/components/pid/CMakeLists.txt +++ b/src/modules/managed/components/pid/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_PID_MANAGED_MODULE "Built the PID HAL managed module." TRUE) if(BUILD_PID_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( pid diff --git a/src/modules/managed/components/pidv2/CMakeLists.txt b/src/modules/managed/components/pidv2/CMakeLists.txt index a593b8a91a..6250c039ff 100644 --- a/src/modules/managed/components/pidv2/CMakeLists.txt +++ b/src/modules/managed/components/pidv2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_PIDV2_MANAGED_MODULE "Built the PID V2 HAL managed module." TRUE) if(BUILD_PIDV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( pidv2 diff --git a/src/executables/instcomp/src/MachinekitHALInstcompInternal.cmake.in b/src/modules/managed/components/pll_correction/CMakeLists.txt similarity index 57% rename from src/executables/instcomp/src/MachinekitHALInstcompInternal.cmake.in rename to src/modules/managed/components/pll_correction/CMakeLists.txt index 1324ed7e06..ce8cd393f5 100644 --- a/src/executables/instcomp/src/MachinekitHALInstcompInternal.cmake.in +++ b/src/modules/managed/components/pll_correction/CMakeLists.txt @@ -1,10 +1,9 @@ # ~~~ # #################################################################### -# Description: MachinekitHALInstcompInterna.cmake.in +# Description: CMakeLists.txt # -# This file, 'MachinekitHALInstcompInternal.cmake.in', -# implements internal (BINARY tree) accessor to the -# CMake module MachinekitHALInstcomp +# This file, 'CMakeLists.txt', implements build system +# rules for Machinekit-HAL project # # Copyright (C) 2021 Jakub FiĊĦer # @@ -25,5 +24,22 @@ # ##################################################################### # ~~~ -set(MACHINEKIT_HAL_INSTCOMP "@MACHINEKIT_HAL_INSTCOMP_INTERNAL@") -include("@MACHINEKIT_HAL_INSTCOMP_CMAKE_MODULE@") \ No newline at end of file +option(BUILD_PLL_CORRECTION_TEST_MANAGED_MODULE + "Built the PLL Correction test managed module." TRUE) + +if(BUILD_PLL_CORRECTION_TEST_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + pll_correction + SOURCE + src/pll_correction.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Tests_Runtests) + + add_dependencies(pll_correction comp_executable) +endif() diff --git a/tests/runtests/pll_correction/pll_correction.comp b/src/modules/managed/components/pll_correction/src/pll_correction.comp similarity index 100% rename from tests/runtests/pll_correction/pll_correction.comp rename to src/modules/managed/components/pll_correction/src/pll_correction.comp diff --git a/src/modules/managed/components/plug_demo/CMakeLists.txt b/src/modules/managed/components/plug_demo/CMakeLists.txt index 1001a64398..31d50ea359 100644 --- a/src/modules/managed/components/plug_demo/CMakeLists.txt +++ b/src/modules/managed/components/plug_demo/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_PLUG_MANAGED_MODULE "Built the Plug HAL managed module." TRUE) if(BUILD_PLUG_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(plug MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::plug ALIAS plug) diff --git a/src/modules/managed/components/probe_parport/CMakeLists.txt b/src/modules/managed/components/probe_parport/CMakeLists.txt index 15cf5d0704..daa9e5a5a5 100644 --- a/src/modules/managed/components/probe_parport/CMakeLists.txt +++ b/src/modules/managed/components/probe_parport/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_PROBE_PARPORT_MANAGED_MODULE "Built the Probe Parport HAL managed module." TRUE) if(BUILD_PROBE_PARPORT_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(probe_parport MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::probe_parport ALIAS probe_parport) diff --git a/src/modules/managed/components/pwmgen/CMakeLists.txt b/src/modules/managed/components/pwmgen/CMakeLists.txt index 48f5726154..5e9c42e636 100644 --- a/src/modules/managed/components/pwmgen/CMakeLists.txt +++ b/src/modules/managed/components/pwmgen/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_PWMGEN_MANAGED_MODULE "Built the PWMGen HAL managed module." TRUE) if(BUILD_PWMGEN_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(pwmgen MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::pwmgen ALIAS pwmgen) diff --git a/src/modules/managed/components/pwmgenv2/CMakeLists.txt b/src/modules/managed/components/pwmgenv2/CMakeLists.txt index 734bc6b1e7..8160d9ca3d 100644 --- a/src/modules/managed/components/pwmgenv2/CMakeLists.txt +++ b/src/modules/managed/components/pwmgenv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_PWMGENV2_MANAGED_MODULE "Built the PWMGen v2 HAL managed module." TRUE) if(BUILD_PWMGENV2_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(pwmgenv2 MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::pwmgenv2 ALIAS pwmgenv2) diff --git a/src/modules/managed/components/random/CMakeLists.txt b/src/modules/managed/components/random/CMakeLists.txt index 0f5e5ddf17..41f2b66350 100644 --- a/src/modules/managed/components/random/CMakeLists.txt +++ b/src/modules/managed/components/random/CMakeLists.txt @@ -29,7 +29,7 @@ option(BUILD_RANDOM_MANAGED_MODULE "Built the Random HAL managed module." TRUE) if(BUILD_PWMGENV2_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(random MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::random ALIAS random) diff --git a/src/libraries/hal/cmake/MachinekitHALUNMANAGED-HALComponent.cmake.in b/src/modules/managed/components/remote/CMakeLists.txt similarity index 60% rename from src/libraries/hal/cmake/MachinekitHALUNMANAGED-HALComponent.cmake.in rename to src/modules/managed/components/remote/CMakeLists.txt index df03545c4a..3425f07664 100644 --- a/src/libraries/hal/cmake/MachinekitHALUNMANAGED-HALComponent.cmake.in +++ b/src/modules/managed/components/remote/CMakeLists.txt @@ -1,9 +1,8 @@ # ~~~ # #################################################################### -# Description: MachinekitHALUNMANAGED-HALComponent.cmake.in +# Description: CMakeLists.txt # -# This file, 'MachinekitHALUNMANAGED-HALComponent.cmake.in', -# implements build system +# This file, 'CMakeLists.txt', implements build system # rules for Machinekit-HAL project # # Copyright (C) 2021 Jakub FiĊĦer @@ -23,4 +22,24 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # ##################################################################### -# ~~~ \ No newline at end of file +# ~~~ + +option(BUILD_REMOTE_MANAGED_MODULE "Built the Remote HAL managed module." + TRUE) + + if(BUILD_REMOTE_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + remote + SOURCE + src/remote.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_dependencies(remote comp_executable) + endif() diff --git a/src/modules/unmanaged/components/remote/src/remote.comp b/src/modules/managed/components/remote/src/remote.comp similarity index 100% rename from src/modules/unmanaged/components/remote/src/remote.comp rename to src/modules/managed/components/remote/src/remote.comp diff --git a/src/modules/managed/components/reset/CMakeLists.txt b/src/modules/managed/components/reset/CMakeLists.txt index 7c05881215..fc3c4f92e1 100644 --- a/src/modules/managed/components/reset/CMakeLists.txt +++ b/src/modules/managed/components/reset/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_RESET_MANAGED_MODULE "Built the Reset HAL managed module." TRUE) if(BUILD_RESET_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( reset diff --git a/src/modules/managed/components/resetv2/CMakeLists.txt b/src/modules/managed/components/resetv2/CMakeLists.txt index 6208cf3bba..43f2255a17 100644 --- a/src/modules/managed/components/resetv2/CMakeLists.txt +++ b/src/modules/managed/components/resetv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_RESETV2_MANAGED_MODULE "Built the Reset V2 HAL managed module." TRUE) if(BUILD_RESETV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( resetv2 diff --git a/src/modules/managed/components/ringread/CMakeLists.txt b/src/modules/managed/components/ringread/CMakeLists.txt index 71394e6ce5..4f9fe00802 100644 --- a/src/modules/managed/components/ringread/CMakeLists.txt +++ b/src/modules/managed/components/ringread/CMakeLists.txt @@ -23,3 +23,23 @@ # # ##################################################################### # ~~~ + +option(BUILD_RINGREAD_MANAGED_MODULE "Built the RingRead HAL managed module." + TRUE) + +if(BUILD_RINGREAD_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + ringread + SOURCE + src/ringread.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_dependencies(ringread comp_executable) +endif() diff --git a/src/modules/managed/components/ringwrite/CMakeLists.txt b/src/modules/managed/components/ringwrite/CMakeLists.txt index 71394e6ce5..54f9be4d36 100644 --- a/src/modules/managed/components/ringwrite/CMakeLists.txt +++ b/src/modules/managed/components/ringwrite/CMakeLists.txt @@ -23,3 +23,23 @@ # # ##################################################################### # ~~~ + +option(BUILD_RINGWRITE_MANAGED_MODULE "Built the RingWrite HAL managed module." + TRUE) + +if(BUILD_RINGWRITE_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + ringwrite + SOURCE + src/ringwrite.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_dependencies(ringwrite comp_executable) +endif() diff --git a/src/modules/managed/components/rtapi-malloc-free/CMakeLists.txt b/src/modules/managed/components/rtapi-malloc-free/CMakeLists.txt index 71394e6ce5..c1939b450f 100644 --- a/src/modules/managed/components/rtapi-malloc-free/CMakeLists.txt +++ b/src/modules/managed/components/rtapi-malloc-free/CMakeLists.txt @@ -23,3 +23,23 @@ # # ##################################################################### # ~~~ + +option(BUILD_RTAPI_MALLOC_FREE_MANAGED_MODULE + "Built the RTAPI Malloc Free test HAL managed module." TRUE) + +if(BUILD_RTAPI_MALLOC_FREE_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + rtapi_malloc_free + SOURCE + src/rtapi_malloc_free.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_dependencies(rtapi_malloc_free comp_executable) +endif() diff --git a/src/modules/managed/components/rtapi-malloc-free/src/testalloc.comp b/src/modules/managed/components/rtapi-malloc-free/src/rtapi_malloc_free.comp similarity index 96% rename from src/modules/managed/components/rtapi-malloc-free/src/testalloc.comp rename to src/modules/managed/components/rtapi-malloc-free/src/rtapi_malloc_free.comp index 7a98b2e1b9..23c0f79fcb 100644 --- a/src/modules/managed/components/rtapi-malloc-free/src/testalloc.comp +++ b/src/modules/managed/components/rtapi-malloc-free/src/rtapi_malloc_free.comp @@ -1,6 +1,6 @@ // exercise the shared memory allocator -component testalloc; +component rtapi_malloc_free; pin in float to_remote "dummy"; @@ -15,7 +15,7 @@ license "GPLv2 or later"; #include "hal/hal.h" #include "runtime/rtapi_heap.h" -static char *name = "testalloc"; +static char *name = "rtapi_malloc_free"; static char *p1,*p2,*p3; static struct rtapi_heap *heap; diff --git a/src/modules/managed/components/rtfault/CMakeLists.txt b/src/modules/managed/components/rtfault/CMakeLists.txt index 71394e6ce5..bd2718eb12 100644 --- a/src/modules/managed/components/rtfault/CMakeLists.txt +++ b/src/modules/managed/components/rtfault/CMakeLists.txt @@ -23,3 +23,23 @@ # # ##################################################################### # ~~~ + +option(BUILD_RTFAULT_MANAGED_MODULE "Built the RTFault HAL managed module." + TRUE) + +if(BUILD_RTFAULT_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + rtfault + SOURCE + src/rtfault.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_dependencies(rtfault comp_executable) +endif() diff --git a/src/modules/managed/components/rtmon/CMakeLists.txt b/src/modules/managed/components/rtmon/CMakeLists.txt index 71394e6ce5..ae31468b38 100644 --- a/src/modules/managed/components/rtmon/CMakeLists.txt +++ b/src/modules/managed/components/rtmon/CMakeLists.txt @@ -23,3 +23,22 @@ # # ##################################################################### # ~~~ + +option(BUILD_RTMON_MANAGED_MODULE "Built the RTMon HAL managed module." TRUE) + +if(BUILD_RTMON_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + rtmon + SOURCE + src/rtmon.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_dependencies(rtmon comp_executable) +endif() diff --git a/src/modules/managed/components/safety_latch/CMakeLists.txt b/src/modules/managed/components/safety_latch/CMakeLists.txt index a8ed6fb62a..9a3f8d8243 100644 --- a/src/modules/managed/components/safety_latch/CMakeLists.txt +++ b/src/modules/managed/components/safety_latch/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SAFETY_LATCH_MANAGED_MODULE "Built the Safety Latch HAL managed module." TRUE) if(BUILD_SAFETY_LATCH_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( safety_latch diff --git a/src/modules/managed/components/safety_latchv2/CMakeLists.txt b/src/modules/managed/components/safety_latchv2/CMakeLists.txt index 0f1dc770c4..6533adee82 100644 --- a/src/modules/managed/components/safety_latchv2/CMakeLists.txt +++ b/src/modules/managed/components/safety_latchv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SAFETY_LATCHV2_MANAGED_MODULE "Built the Safety Latch V2 HAL managed module." TRUE) if(BUILD_SAFETY_LATCHV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( safety_latchv2 diff --git a/src/modules/managed/components/sample_hold/CMakeLists.txt b/src/modules/managed/components/sample_hold/CMakeLists.txt index 5a4b282f05..4698df0647 100644 --- a/src/modules/managed/components/sample_hold/CMakeLists.txt +++ b/src/modules/managed/components/sample_hold/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SAMPLE_HOLD_MANAGED_MODULE "Built the Sample Hold HAL managed module." TRUE) if(BUILD_SAMPLE_HOLD_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( sample_hold diff --git a/src/modules/managed/components/sample_holdv2/CMakeLists.txt b/src/modules/managed/components/sample_holdv2/CMakeLists.txt index f144d45c60..5479d67197 100644 --- a/src/modules/managed/components/sample_holdv2/CMakeLists.txt +++ b/src/modules/managed/components/sample_holdv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SAMPLE_HOLDV2_MANAGED_MODULE "Built the Sample Hold V2 HAL managed module." TRUE) if(BUILD_SAMPLE_HOLDV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( sample_holdv2 diff --git a/src/modules/managed/components/sampler/CMakeLists.txt b/src/modules/managed/components/sampler/CMakeLists.txt index e74a581362..68e5facc2c 100644 --- a/src/modules/managed/components/sampler/CMakeLists.txt +++ b/src/modules/managed/components/sampler/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SAMPLER_MANAGED_MODULE "Built the Sampler HAL managed module." TRUE) if(BUILD_SAMPLER_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(sampler MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::sampler ALIAS sampler) diff --git a/src/modules/managed/components/scale/CMakeLists.txt b/src/modules/managed/components/scale/CMakeLists.txt index f53306d6cc..ac5eb527f3 100644 --- a/src/modules/managed/components/scale/CMakeLists.txt +++ b/src/modules/managed/components/scale/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_SCALE_MANAGED_MODULE "Built the Scale HAL managed module." TRUE) if(BUILD_SCALE_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( scale diff --git a/src/modules/managed/components/scope_rt/CMakeLists.txt b/src/modules/managed/components/scope_rt/CMakeLists.txt index 3baf1d09e1..c0c811d632 100644 --- a/src/modules/managed/components/scope_rt/CMakeLists.txt +++ b/src/modules/managed/components/scope_rt/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SCOPE_RT_MANAGED_MODULE "Built the Scope RT HAL managed module." TRUE) if(BUILD_SCOPE_RT_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(scope_rt MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::scope_rt ALIAS scope_rt) diff --git a/src/modules/managed/components/select8/CMakeLists.txt b/src/modules/managed/components/select8/CMakeLists.txt index 5c0c5c0187..c36ee8f827 100644 --- a/src/modules/managed/components/select8/CMakeLists.txt +++ b/src/modules/managed/components/select8/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SELECT8_MANAGED_MODULE "Built the Select8 HAL managed module." TRUE) if(BUILD_SELECT8_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( select8 diff --git a/src/modules/managed/components/select8v2/CMakeLists.txt b/src/modules/managed/components/select8v2/CMakeLists.txt index f8479f0156..d54b107286 100644 --- a/src/modules/managed/components/select8v2/CMakeLists.txt +++ b/src/modules/managed/components/select8v2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SELECT8V2_MANAGED_MODULE "Built the Select8 V2 HAL managed module." TRUE) if(BUILD_SELECT8V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( select8v2 diff --git a/src/modules/managed/components/selectn/CMakeLists.txt b/src/modules/managed/components/selectn/CMakeLists.txt index 732f098896..f5a812cd68 100644 --- a/src/modules/managed/components/selectn/CMakeLists.txt +++ b/src/modules/managed/components/selectn/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SELECTN_MANAGED_MODULE "Built the SelectN HAL managed module." TRUE) if(BUILD_SELECTN_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( selectn diff --git a/src/modules/managed/components/selectnv2/CMakeLists.txt b/src/modules/managed/components/selectnv2/CMakeLists.txt index d6f8638d04..0a6a14526d 100644 --- a/src/modules/managed/components/selectnv2/CMakeLists.txt +++ b/src/modules/managed/components/selectnv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SELECTNV2_MANAGED_MODULE "Built the SelectN V2 HAL managed module." TRUE) if(BUILD_SELECTNV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( selectnv2 diff --git a/src/modules/managed/components/siggen/CMakeLists.txt b/src/modules/managed/components/siggen/CMakeLists.txt index c86d41ed4e..7588e7fa26 100644 --- a/src/modules/managed/components/siggen/CMakeLists.txt +++ b/src/modules/managed/components/siggen/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_SIGGEN_MANAGED_MODULE "Built the Siggen HAL managed module." TRUE) if(BUILD_SIGGEN_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(siggen MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::siggen ALIAS siggen) diff --git a/src/modules/managed/components/sim_axis_hardware/CMakeLists.txt b/src/modules/managed/components/sim_axis_hardware/CMakeLists.txt index 9cad475301..b7de54ae3b 100644 --- a/src/modules/managed/components/sim_axis_hardware/CMakeLists.txt +++ b/src/modules/managed/components/sim_axis_hardware/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SIM_AXIS_HARDWARE_MANAGED_MODULE "Built the Sim AXIS hardware HAL managed module." TRUE) if(BUILD_SIM_AXIS_HARDWARE_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( sim_axis_hardware diff --git a/src/modules/managed/components/sim_axis_hardwarev2/CMakeLists.txt b/src/modules/managed/components/sim_axis_hardwarev2/CMakeLists.txt index 399f57b199..8303ae3bbf 100644 --- a/src/modules/managed/components/sim_axis_hardwarev2/CMakeLists.txt +++ b/src/modules/managed/components/sim_axis_hardwarev2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SIM_AXIS_HARDWAREV2_MANAGED_MODULE "Built the Sim AXIS Hardware V2 HAL managed module." TRUE) if(BUILD_SIM_AXIS_HARDWAREV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( sim_axis_hardwarev2 diff --git a/src/modules/managed/components/sim_encoder/CMakeLists.txt b/src/modules/managed/components/sim_encoder/CMakeLists.txt index 74ce84802b..09554fccb2 100644 --- a/src/modules/managed/components/sim_encoder/CMakeLists.txt +++ b/src/modules/managed/components/sim_encoder/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SIM_ENCODER_MANAGED_MODULE "Built the SIM Encoder HAL managed module." TRUE) if(BUILD_SIM_ENCODER_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(sim_encoder MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::sim_encoder ALIAS sim_encoder) diff --git a/src/modules/managed/components/sim_parport/CMakeLists.txt b/src/modules/managed/components/sim_parport/CMakeLists.txt index 2a53ee70e3..3d54696148 100644 --- a/src/modules/managed/components/sim_parport/CMakeLists.txt +++ b/src/modules/managed/components/sim_parport/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SIM_PARPORT_MANAGED_MODULE "Built the Sim Parport HAL managed module." TRUE) if(BUILD_SIM_PARPORT_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( sim_parport diff --git a/src/modules/managed/components/sim_parportv2/CMakeLists.txt b/src/modules/managed/components/sim_parportv2/CMakeLists.txt index fc02f76e2d..1e671ac70a 100644 --- a/src/modules/managed/components/sim_parportv2/CMakeLists.txt +++ b/src/modules/managed/components/sim_parportv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SIM_PARPORTV2_MANAGED_MODULE "Built the Sim Parport V2 HAL managed module." TRUE) if(BUILD_SIM_PARPORTV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( sim_parportv2 diff --git a/src/modules/managed/components/sim_spindle/CMakeLists.txt b/src/modules/managed/components/sim_spindle/CMakeLists.txt index d1e96346fe..75f8b2746a 100644 --- a/src/modules/managed/components/sim_spindle/CMakeLists.txt +++ b/src/modules/managed/components/sim_spindle/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SIM_SPINDLE_MANAGED_MODULE "Built the Sim Spindle HAL managed module." TRUE) if(BUILD_SIM_SPINDLE_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( sim_spindle diff --git a/src/modules/managed/components/sim_spindlev2/CMakeLists.txt b/src/modules/managed/components/sim_spindlev2/CMakeLists.txt index c38ffe4265..b737d191b7 100644 --- a/src/modules/managed/components/sim_spindlev2/CMakeLists.txt +++ b/src/modules/managed/components/sim_spindlev2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SIM_SPINDLEV2_MANAGED_MODULE "Built the Sim Spindle V2 HAL managed module." TRUE) if(BUILD_SIM_SPINDLEV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( sim_spindlev2 diff --git a/src/modules/managed/components/sphereprobe/CMakeLists.txt b/src/modules/managed/components/sphereprobe/CMakeLists.txt index f23f25b5e5..325548a29f 100644 --- a/src/modules/managed/components/sphereprobe/CMakeLists.txt +++ b/src/modules/managed/components/sphereprobe/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SPHEREPROBE_MANAGED_MODULE "Built the Sphereprobe HAL managed module." TRUE) if(BUILD_SPHEREPROBE_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( sphereprobe diff --git a/src/modules/managed/components/sphereprobev2/CMakeLists.txt b/src/modules/managed/components/sphereprobev2/CMakeLists.txt index 617d207e4c..1dbb7f248e 100644 --- a/src/modules/managed/components/sphereprobev2/CMakeLists.txt +++ b/src/modules/managed/components/sphereprobev2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SPHEREPROBEV2_MANAGED_MODULE "Built the Sphereprobe V2 HAL managed module." TRUE) if(BUILD_SPHEREPROBEV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( sphereprobev2 diff --git a/src/modules/managed/components/stats/CMakeLists.txt b/src/modules/managed/components/stats/CMakeLists.txt index 070a9f5a2c..6065c1f350 100644 --- a/src/modules/managed/components/stats/CMakeLists.txt +++ b/src/modules/managed/components/stats/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_STATS_MANAGED_MODULE "Built the Stats HAL managed module." TRUE) if(BUILD_STATS_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( stats diff --git a/src/modules/managed/components/statsv2/CMakeLists.txt b/src/modules/managed/components/statsv2/CMakeLists.txt index ba6e459694..e7dc02a4ab 100644 --- a/src/modules/managed/components/statsv2/CMakeLists.txt +++ b/src/modules/managed/components/statsv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_STATSV2_MANAGED_MODULE "Built the Stats V2 HAL managed module." TRUE) if(BUILD_STATSV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( statsv2 diff --git a/src/modules/managed/components/stepgen/CMakeLists.txt b/src/modules/managed/components/stepgen/CMakeLists.txt index a481e45e0e..7923725893 100644 --- a/src/modules/managed/components/stepgen/CMakeLists.txt +++ b/src/modules/managed/components/stepgen/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_STEPGEN_MANAGED_MODULE "Built the Stepgen HAL managed module." TRUE) if(BUILD_STEPGEN_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(stepgen MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::stepgen ALIAS stepgen) diff --git a/src/modules/managed/components/stepgenv2/CMakeLists.txt b/src/modules/managed/components/stepgenv2/CMakeLists.txt index dc65084d4e..8a6ca68d5b 100644 --- a/src/modules/managed/components/stepgenv2/CMakeLists.txt +++ b/src/modules/managed/components/stepgenv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_STEPGENV2_MANAGED_MODULE "Built the Stepgen v2 HAL managed module." TRUE) if(BUILD_STEPGENV2_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(stepgenv2 MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::stepgenv2 ALIAS stepgenv2) diff --git a/src/modules/managed/components/steptest/CMakeLists.txt b/src/modules/managed/components/steptest/CMakeLists.txt index 8d4bf2abae..18de97ea74 100644 --- a/src/modules/managed/components/steptest/CMakeLists.txt +++ b/src/modules/managed/components/steptest/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_STEPTEST_MANAGED_MODULE "Built the Steptest HAL managed module." TRUE) if(BUILD_STEPTEST_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( steptest diff --git a/src/modules/managed/components/steptestv2/CMakeLists.txt b/src/modules/managed/components/steptestv2/CMakeLists.txt index 57b2cc9ccf..de8677ed4f 100644 --- a/src/modules/managed/components/steptestv2/CMakeLists.txt +++ b/src/modules/managed/components/steptestv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_STEPTESTV2_MANAGED_MODULE "Built the Steptest V2 HAL managed module." TRUE) if(BUILD_STEPTESTV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( steptestv2 diff --git a/src/modules/managed/components/streamer/CMakeLists.txt b/src/modules/managed/components/streamer/CMakeLists.txt index d9b8e87427..16ec4106a0 100644 --- a/src/modules/managed/components/streamer/CMakeLists.txt +++ b/src/modules/managed/components/streamer/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_STREAMER_MANAGED_MODULE "Built the Streamer HAL managed module." TRUE) if(BUILD_STREAMER_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(streamer MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::streamer ALIAS streamer) diff --git a/src/modules/managed/components/sum2/CMakeLists.txt b/src/modules/managed/components/sum2/CMakeLists.txt index 603fd4b4b7..4758603198 100644 --- a/src/modules/managed/components/sum2/CMakeLists.txt +++ b/src/modules/managed/components/sum2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_SUM2_MANAGED_MODULE "Built the Sum2 HAL managed module." TRUE) if(BUILD_SUM2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( sum2 diff --git a/src/modules/managed/components/sum2v2/CMakeLists.txt b/src/modules/managed/components/sum2v2/CMakeLists.txt index 3d7f328f86..7d795d78a8 100644 --- a/src/modules/managed/components/sum2v2/CMakeLists.txt +++ b/src/modules/managed/components/sum2v2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_SUM2V2_MANAGED_MODULE "Built the Sum2 V2 HAL managed module." TRUE) if(BUILD_SUM2V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( sum2v2 diff --git a/src/modules/managed/components/sumn/CMakeLists.txt b/src/modules/managed/components/sumn/CMakeLists.txt index b549dc0b82..6475cff688 100644 --- a/src/modules/managed/components/sumn/CMakeLists.txt +++ b/src/modules/managed/components/sumn/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_SUMN_MANAGED_MODULE "Built the SumN HAL managed module." TRUE) if(BUILD_SUMN_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( sumn diff --git a/src/modules/managed/components/sumnv2/CMakeLists.txt b/src/modules/managed/components/sumnv2/CMakeLists.txt index 799d8b5fa2..3b4a30528e 100644 --- a/src/modules/managed/components/sumnv2/CMakeLists.txt +++ b/src/modules/managed/components/sumnv2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_SUMNV2_MANAGED_MODULE "Built the Sumn V2 HAL managed module." TRUE) if(BUILD_SUMNV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( sumnv2 diff --git a/src/modules/managed/components/svalev2/CMakeLists.txt b/src/modules/managed/components/svalev2/CMakeLists.txt index 979a6ba9aa..1b556a5184 100644 --- a/src/modules/managed/components/svalev2/CMakeLists.txt +++ b/src/modules/managed/components/svalev2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_SCALEV2_MANAGED_MODULE "Built the Scale V2 HAL managed module." TRUE) if(BUILD_SCALEV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( scalev2 diff --git a/src/modules/managed/components/symbols_define/CMakeLists.txt b/src/modules/managed/components/symbols_define/CMakeLists.txt new file mode 100644 index 0000000000..aa761c2ce0 --- /dev/null +++ b/src/modules/managed/components/symbols_define/CMakeLists.txt @@ -0,0 +1,45 @@ +# ~~~ +# #################################################################### +# Description: CMakeLists.txt +# +# This file, 'CMakeLists.txt', implements build system +# rules for Machinekit-HAL project +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +# ##################################################################### +# ~~~ + +option(BUILD_SYMBOLS_DEFINE_TEST_MANAGED_MODULE + "Built the Symbols define test managed module." TRUE) + +if(BUILD_SYMBOLS_DEFINE_TEST_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + symbols_define + SOURCE + src/symbols_define.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Tests_Runtests) + + add_dependencies(symbols_define comp_executable) +endif() diff --git a/tests/runtests/symbols.0/test_define.comp b/src/modules/managed/components/symbols_define/src/symbols_define.comp similarity index 77% rename from tests/runtests/symbols.0/test_define.comp rename to src/modules/managed/components/symbols_define/src/symbols_define.comp index c3aff1332f..4f86675c64 100644 --- a/tests/runtests/symbols.0/test_define.comp +++ b/src/modules/managed/components/symbols_define/src/symbols_define.comp @@ -1,4 +1,4 @@ -component test_define; +component symbols_define; pin out bit out; function _ nofp; diff --git a/src/modules/managed/components/symbols_define_out/CMakeLists.txt b/src/modules/managed/components/symbols_define_out/CMakeLists.txt new file mode 100644 index 0000000000..d7dc801000 --- /dev/null +++ b/src/modules/managed/components/symbols_define_out/CMakeLists.txt @@ -0,0 +1,45 @@ +# ~~~ +# #################################################################### +# Description: CMakeLists.txt +# +# This file, 'CMakeLists.txt', implements build system +# rules for Machinekit-HAL project +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +# ##################################################################### +# ~~~ + +option(BUILD_SYMBOLS_DEFINE_OUT_TEST_MANAGED_MODULE + "Built the Symbols Define Out test managed module." TRUE) + +if(BUILD_SYMBOLS_DEFINE_OUT_TEST_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + symbols_define_out + SOURCE + src/symbols_define_out.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Tests_Runtests) + + add_dependencies(symbols_define_out comp_executable) +endif() diff --git a/tests/runtests/symbols.1/test_define1.comp b/src/modules/managed/components/symbols_define_out/src/symbols_define_out.comp similarity index 77% rename from tests/runtests/symbols.1/test_define1.comp rename to src/modules/managed/components/symbols_define_out/src/symbols_define_out.comp index 764b51b2c1..2893ce55f1 100644 --- a/tests/runtests/symbols.1/test_define1.comp +++ b/src/modules/managed/components/symbols_define_out/src/symbols_define_out.comp @@ -1,4 +1,4 @@ -component test_define1; +component symbols_define_out; pin out s32 out; function _ nofp; diff --git a/src/libraries/hal/cmake/MachinekitHALMANAGED-HALComponent.cmake.in b/src/modules/managed/components/symbols_use/CMakeLists.txt similarity index 61% rename from src/libraries/hal/cmake/MachinekitHALMANAGED-HALComponent.cmake.in rename to src/modules/managed/components/symbols_use/CMakeLists.txt index 527c54ccc7..dc2a745517 100644 --- a/src/libraries/hal/cmake/MachinekitHALMANAGED-HALComponent.cmake.in +++ b/src/modules/managed/components/symbols_use/CMakeLists.txt @@ -1,9 +1,8 @@ # ~~~ # #################################################################### -# Description: MachinekitHALMANAGED-HALComponent.cmake.in +# Description: CMakeLists.txt # -# This file, 'MachinekitHALMANAGED-HALComponent.cmake.in', -# implements build system +# This file, 'CMakeLists.txt', implements build system # rules for Machinekit-HAL project # # Copyright (C) 2021 Jakub FiĊĦer @@ -24,3 +23,23 @@ # # ##################################################################### # ~~~ + +option(BUILD_SYMBOLS_USE_TEST_MANAGED_MODULE + "Built the Symbols use test managed module." TRUE) + +if(BUILD_SYMBOLS_USE_TEST_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + symbols_use + SOURCE + src/symbols_use.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Tests_Runtests) + + add_dependencies(symbols_use comp_executable) +endif() diff --git a/tests/runtests/symbols.0/test_use.comp b/src/modules/managed/components/symbols_use/src/symbols_use.comp similarity index 80% rename from tests/runtests/symbols.0/test_use.comp rename to src/modules/managed/components/symbols_use/src/symbols_use.comp index 52ddf0edce..5368ee8360 100644 --- a/tests/runtests/symbols.0/test_use.comp +++ b/src/modules/managed/components/symbols_use/src/symbols_use.comp @@ -1,4 +1,4 @@ -component test_use; +component symbols_use; pin out bit out; function _ nofp; diff --git a/src/modules/managed/components/symbols_use_out/CMakeLists.txt b/src/modules/managed/components/symbols_use_out/CMakeLists.txt new file mode 100644 index 0000000000..1780af6aba --- /dev/null +++ b/src/modules/managed/components/symbols_use_out/CMakeLists.txt @@ -0,0 +1,45 @@ +# ~~~ +# #################################################################### +# Description: CMakeLists.txt +# +# This file, 'CMakeLists.txt', implements build system +# rules for Machinekit-HAL project +# +# Copyright (C) 2021 Jakub FiĊĦer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +# ##################################################################### +# ~~~ + +option(BUILD_SYMBOLS_USE_OUT_TEST_MANAGED_MODULE + "Built the Symbols Use test managed module." TRUE) + +if(BUILD_SYMBOLS_USE_OUT_TEST_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + symbols_use_out + SOURCE + src/symbols_use_out.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Tests_Runtests) + + add_dependencies(symbols_use_out comp_executable) +endif() diff --git a/tests/runtests/symbols.1/test_use1.comp b/src/modules/managed/components/symbols_use_out/src/symbols_use_out.comp similarity index 78% rename from tests/runtests/symbols.1/test_use1.comp rename to src/modules/managed/components/symbols_use_out/src/symbols_use_out.comp index f6a76764bd..8d9b10ad39 100644 --- a/tests/runtests/symbols.1/test_use1.comp +++ b/src/modules/managed/components/symbols_use_out/src/symbols_use_out.comp @@ -1,4 +1,4 @@ -component test_use1; +component symbols_use_out; pin out s32 out; function _ nofp; @@ -7,3 +7,4 @@ license "GPL"; int testdefine; FUNCTION(_) { out = testdefine; } + diff --git a/src/modules/managed/components/thc/CMakeLists.txt b/src/modules/managed/components/thc/CMakeLists.txt index 0d7892145b..1992e0e82e 100644 --- a/src/modules/managed/components/thc/CMakeLists.txt +++ b/src/modules/managed/components/thc/CMakeLists.txt @@ -24,9 +24,23 @@ # ##################################################################### # ~~~ -option(BUILD_THREADTEST_MANAGED_MODULE - "Built the Threadtest HAL managed module." TRUE) +option(BUILD_THC_MANAGED_MODULE "Built the THC HAL managed module." TRUE) -if(BUILD_THREADTEST_MANAGED_MODULE) +if(BUILD_THC_MANAGED_MODULE) + include(MachinekitHALCompFunction) + add_legacy_managed_module( + thc + SOURCE + src/thc.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + LINK_LIBRARIES + runtime_math + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_dependencies(thc comp_executable) endif() diff --git a/src/modules/managed/components/thcud/CMakeLists.txt b/src/modules/managed/components/thcud/CMakeLists.txt index 71394e6ce5..05a53d5d6b 100644 --- a/src/modules/managed/components/thcud/CMakeLists.txt +++ b/src/modules/managed/components/thcud/CMakeLists.txt @@ -23,3 +23,24 @@ # # ##################################################################### # ~~~ + +option(BUILD_THCUD_MANAGED_MODULE "Built the THCud HAL managed module." TRUE) + +if(BUILD_THCUD_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + thcud + SOURCE + src/thcud.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + LINK_LIBRARIES + runtime_math + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_dependencies(thcud comp_executable) +endif() diff --git a/src/modules/managed/components/threads/CMakeLists.txt b/src/modules/managed/components/threads/CMakeLists.txt index 735a86a4da..30d8efe0ec 100644 --- a/src/modules/managed/components/threads/CMakeLists.txt +++ b/src/modules/managed/components/threads/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_THREADS_MANAGED_MODULE "Built the Threads HAL managed module." TRUE) if(BUILD_THREADS_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(threads MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::threads ALIAS threads) diff --git a/src/modules/managed/components/threadtest/CMakeLists.txt b/src/modules/managed/components/threadtest/CMakeLists.txt index d781abed9e..aedcd7d575 100644 --- a/src/modules/managed/components/threadtest/CMakeLists.txt +++ b/src/modules/managed/components/threadtest/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_THREADTEST_MANAGED_MODULE "Built the Threadtest HAL managed module." TRUE) if(BUILD_THREADTEST_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( threadtest diff --git a/src/modules/managed/components/threadtestv2/CMakeLists.txt b/src/modules/managed/components/threadtestv2/CMakeLists.txt index 5656faf77b..34456a91b6 100644 --- a/src/modules/managed/components/threadtestv2/CMakeLists.txt +++ b/src/modules/managed/components/threadtestv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_THREADTESTV2_MANAGED_MODULE "Built the Threadtest V2 HAL managed module." TRUE) if(BUILD_THREADTESTV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( threadtestv2 diff --git a/src/modules/managed/components/time/CMakeLists.txt b/src/modules/managed/components/time/CMakeLists.txt index 8d308bfee1..9d8b234aca 100644 --- a/src/modules/managed/components/time/CMakeLists.txt +++ b/src/modules/managed/components/time/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_TIME_MANAGED_MODULE "Built the Time HAL managed module." TRUE) if(BUILD_TIME_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( time diff --git a/src/modules/managed/components/timedelay/CMakeLists.txt b/src/modules/managed/components/timedelay/CMakeLists.txt index 462372eeca..b64e173779 100644 --- a/src/modules/managed/components/timedelay/CMakeLists.txt +++ b/src/modules/managed/components/timedelay/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_TIMEDELAY_MANAGED_MODULE "Built the Timedelay HAL managed module." TRUE) if(BUILD_TIMEDELAY_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( timedelay diff --git a/src/modules/managed/components/timedelayv2/CMakeLists.txt b/src/modules/managed/components/timedelayv2/CMakeLists.txt index a154a93ca6..0f03460a97 100644 --- a/src/modules/managed/components/timedelayv2/CMakeLists.txt +++ b/src/modules/managed/components/timedelayv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_TIMEDELAYV2_MANAGED_MODULE "Built the Timedelay V2 HAL managed module." TRUE) if(BUILD_TIMEDELAYV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( timedelayv2 diff --git a/src/modules/managed/components/timedelta/CMakeLists.txt b/src/modules/managed/components/timedelta/CMakeLists.txt index 8de529cfb3..e0ece2e03f 100644 --- a/src/modules/managed/components/timedelta/CMakeLists.txt +++ b/src/modules/managed/components/timedelta/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_TIMEDELTA_MANAGED_MODULE "Built the Timedelta HAL managed module." TRUE) if(BUILD_TIMEDELTA_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( timedelta diff --git a/src/modules/managed/components/timedeltav2/CMakeLists.txt b/src/modules/managed/components/timedeltav2/CMakeLists.txt index 67b186e777..e2fc5c41c4 100644 --- a/src/modules/managed/components/timedeltav2/CMakeLists.txt +++ b/src/modules/managed/components/timedeltav2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_TIMEDELTAV2_MANAGED_MODULE "Built the Timedelta V2 HAL managed module." TRUE) if(BUILD_TIMEDELTAV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( timedeltav2 diff --git a/src/modules/managed/components/timev2/CMakeLists.txt b/src/modules/managed/components/timev2/CMakeLists.txt index 6cc8a2b8fa..7501c80029 100644 --- a/src/modules/managed/components/timev2/CMakeLists.txt +++ b/src/modules/managed/components/timev2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_TIMEV2_MANAGED_MODULE "Built the Time V2 HAL managed module." TRUE) if(BUILD_TIMEV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( timev2 diff --git a/src/modules/managed/components/toggle/CMakeLists.txt b/src/modules/managed/components/toggle/CMakeLists.txt index 17b229ff77..6187a18eb9 100644 --- a/src/modules/managed/components/toggle/CMakeLists.txt +++ b/src/modules/managed/components/toggle/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_TOGGLE_MANAGED_MODULE "Built the Toggle HAL managed module." TRUE) if(BUILD_TOGGLE_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( toggle diff --git a/src/modules/managed/components/toggle2nist/CMakeLists.txt b/src/modules/managed/components/toggle2nist/CMakeLists.txt index 9d427dc9d8..110842863a 100644 --- a/src/modules/managed/components/toggle2nist/CMakeLists.txt +++ b/src/modules/managed/components/toggle2nist/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_TOGGLE2NIST_MANAGED_MODULE "Built the Toggle2Nist HAL managed module." TRUE) if(BUILD_TOGGLE2NIST_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( toggle2nist diff --git a/src/modules/managed/components/toggle2nistv2/CMakeLists.txt b/src/modules/managed/components/toggle2nistv2/CMakeLists.txt index 28abc5b752..e3bb5e17cc 100644 --- a/src/modules/managed/components/toggle2nistv2/CMakeLists.txt +++ b/src/modules/managed/components/toggle2nistv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_TOGGLE2NISTV2_MANAGED_MODULE "Built the Toggle2Nist V2 HAL managed module." TRUE) if(BUILD_TOGGLE2NISTV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( toggle2nistv2 diff --git a/src/modules/managed/components/togglev2/CMakeLists.txt b/src/modules/managed/components/togglev2/CMakeLists.txt index 0701f2ee76..2f0656955e 100644 --- a/src/modules/managed/components/togglev2/CMakeLists.txt +++ b/src/modules/managed/components/togglev2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_TOGGLEV2_MANAGED_MODULE "Built the Toggle V2 HAL managed module." TRUE) if(BUILD_TOGGLEV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( togglev2 diff --git a/src/modules/managed/components/tristate_bit/CMakeLists.txt b/src/modules/managed/components/tristate_bit/CMakeLists.txt index 4f297b22e4..27c4df3194 100644 --- a/src/modules/managed/components/tristate_bit/CMakeLists.txt +++ b/src/modules/managed/components/tristate_bit/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_TRISTATE_BIT_MANAGED_MODULE "Built the Tristate Bit HAL managed module." TRUE) if(BUILD_TRISTATE_BIT_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( tristate_bit diff --git a/src/modules/managed/components/tristate_bitv2/CMakeLists.txt b/src/modules/managed/components/tristate_bitv2/CMakeLists.txt index 903fc7e32b..715c110529 100644 --- a/src/modules/managed/components/tristate_bitv2/CMakeLists.txt +++ b/src/modules/managed/components/tristate_bitv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_TRISTATE_BITV2_MANAGED_MODULE "Built the Tristate Bit V2 HAL managed module." TRUE) if(BUILD_TRISTATE_BITV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( tristate_bitv2 diff --git a/src/modules/managed/components/tristate_float/CMakeLists.txt b/src/modules/managed/components/tristate_float/CMakeLists.txt index c636470465..72febf07b6 100644 --- a/src/modules/managed/components/tristate_float/CMakeLists.txt +++ b/src/modules/managed/components/tristate_float/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_TRISTATE_FLOAT_MANAGED_MODULE "Built the Tristate Float HAL managed module." TRUE) if(BUILD_TRISTATE_FLOAT_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( tristate_float diff --git a/src/modules/managed/components/tristate_floatv2/CMakeLists.txt b/src/modules/managed/components/tristate_floatv2/CMakeLists.txt index c9dde66179..3106c6902f 100644 --- a/src/modules/managed/components/tristate_floatv2/CMakeLists.txt +++ b/src/modules/managed/components/tristate_floatv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_TRISTATE_FLOATV2_MANAGED_MODULE "Built the Tristate Float V2 HAL managed module." TRUE) if(BUILD_TRISTATE_FLOATV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( tristate_floatv2 diff --git a/src/modules/managed/components/uf_demo/CMakeLists.txt b/src/modules/managed/components/uf_demo/CMakeLists.txt index 2a24ec7f6f..4f43d42055 100644 --- a/src/modules/managed/components/uf_demo/CMakeLists.txt +++ b/src/modules/managed/components/uf_demo/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_UFDEMO_MANAGED_MODULE "Built the Ufdemo HAL managed module." TRUE) if(BUILD_UFDEMO_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(ufdemo MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::ufdemo ALIAS ufdemo) diff --git a/src/modules/managed/components/updown/CMakeLists.txt b/src/modules/managed/components/updown/CMakeLists.txt index f991701adc..e985d2be33 100644 --- a/src/modules/managed/components/updown/CMakeLists.txt +++ b/src/modules/managed/components/updown/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_UPDOWN_MANAGED_MODULE "Built the Updown HAL managed module." TRUE) if(BUILD_UPDOWN_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( updown diff --git a/src/modules/managed/components/updownv2/CMakeLists.txt b/src/modules/managed/components/updownv2/CMakeLists.txt index 3bef160232..4fc8c1cc9e 100644 --- a/src/modules/managed/components/updownv2/CMakeLists.txt +++ b/src/modules/managed/components/updownv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_UPDOWNV2_MANAGED_MODULE "Built the Updown V2 HAL managed module." TRUE) if(BUILD_UPDOWNV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( updownv2 diff --git a/src/modules/managed/components/vari_bit_adc/CMakeLists.txt b/src/modules/managed/components/vari_bit_adc/CMakeLists.txt index 71394e6ce5..925f36b729 100644 --- a/src/modules/managed/components/vari_bit_adc/CMakeLists.txt +++ b/src/modules/managed/components/vari_bit_adc/CMakeLists.txt @@ -23,3 +23,23 @@ # # ##################################################################### # ~~~ + +option(BUILD_VARI_BIT_ADC_MANAGED_MODULE "Built the Vari bit ADC HAL managed module." + TRUE) + +if(BUILD_VARI_BIT_ADC_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + vari_bit_adc + SOURCE + src/vari_bit_adc.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_dependencies(vari_bit_adc comp_executable) +endif() diff --git a/src/modules/managed/components/watch/CMakeLists.txt b/src/modules/managed/components/watch/CMakeLists.txt index b18909a60e..529e00c617 100644 --- a/src/modules/managed/components/watch/CMakeLists.txt +++ b/src/modules/managed/components/watch/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_WATCH_MANAGED_MODULE "Built the Watch HAL managed module." TRUE) if(BUILD_STEPGEN_MANAGED_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(watch MODULE) add_library(${MACHINEKIT_HAL_NAMESPACE}::watch ALIAS watch) diff --git a/src/modules/managed/components/watchdog/CMakeLists.txt b/src/modules/managed/components/watchdog/CMakeLists.txt index de73cca24a..201d16856b 100644 --- a/src/modules/managed/components/watchdog/CMakeLists.txt +++ b/src/modules/managed/components/watchdog/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_WATCHDOG_MANAGED_MODULE "Built the Watchdog HAL managed module." TRUE) if(BUILD_WATCHDOG_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( watchdog diff --git a/src/modules/managed/components/watchdogv2/CMakeLists.txt b/src/modules/managed/components/watchdogv2/CMakeLists.txt index e5fd6fa699..f07fdf47c2 100644 --- a/src/modules/managed/components/watchdogv2/CMakeLists.txt +++ b/src/modules/managed/components/watchdogv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_WATCHDOGV2_MANAGED_MODULE "Built the Watchdog V2 HAL managed module." TRUE) if(BUILD_WATCHDOGV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( watchdogv2 diff --git a/src/modules/managed/components/wcomp/CMakeLists.txt b/src/modules/managed/components/wcomp/CMakeLists.txt index 7ae8292308..b582b23279 100644 --- a/src/modules/managed/components/wcomp/CMakeLists.txt +++ b/src/modules/managed/components/wcomp/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_WCOMP_MANAGED_MODULE "Built the WComp HAL managed module." TRUE) if(BUILD_WCOMP_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( wcomp diff --git a/src/modules/managed/components/wcompn/CMakeLists.txt b/src/modules/managed/components/wcompn/CMakeLists.txt index a5c89dab5a..a0e2a63194 100644 --- a/src/modules/managed/components/wcompn/CMakeLists.txt +++ b/src/modules/managed/components/wcompn/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_WCOMPN_MANAGED_MODULE "Built the WCompN HAL managed module." TRUE) if(BUILD_WCOMPN_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( wcompn diff --git a/src/modules/managed/components/wcompnv2/CMakeLists.txt b/src/modules/managed/components/wcompnv2/CMakeLists.txt index 5be456eeb2..2b564d0af5 100644 --- a/src/modules/managed/components/wcompnv2/CMakeLists.txt +++ b/src/modules/managed/components/wcompnv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_WCOMPNV2_MANAGED_MODULE "Built the WCompN V2 HAL managed module." TRUE) if(BUILD_WCOMPNV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( wcompnv2 diff --git a/src/modules/managed/components/wcompv2/CMakeLists.txt b/src/modules/managed/components/wcompv2/CMakeLists.txt index fe5b9bc1e6..a250472ecc 100644 --- a/src/modules/managed/components/wcompv2/CMakeLists.txt +++ b/src/modules/managed/components/wcompv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_WCOMPV2_MANAGED_MODULE "Built the WComp V2 HAL managed module." TRUE) if(BUILD_WCOMPV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( wcompv2 diff --git a/src/modules/managed/components/weighted_sum/CMakeLists.txt b/src/modules/managed/components/weighted_sum/CMakeLists.txt index 9ff5118eb6..296b9b3fc7 100644 --- a/src/modules/managed/components/weighted_sum/CMakeLists.txt +++ b/src/modules/managed/components/weighted_sum/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_WEIGHTED_SUM_MANAGED_MODULE "Built the Weighted Sum HAL managed module." TRUE) if(BUILD_WEIGHTED_SUM_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( weighted_sum diff --git a/src/modules/managed/components/weighted_sumv2/CMakeLists.txt b/src/modules/managed/components/weighted_sumv2/CMakeLists.txt index c1eb57a4c1..f4732b6156 100644 --- a/src/modules/managed/components/weighted_sumv2/CMakeLists.txt +++ b/src/modules/managed/components/weighted_sumv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_WEIGHTED_SUMV2_MANAGED_MODULE "Built the Weighted Sum V2 HAL managed module." TRUE) if(BUILD_WEIGHTED_SUMV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( weighted_sumv2 diff --git a/src/modules/managed/components/xhc_hb04_util/CMakeLists.txt b/src/modules/managed/components/xhc_hb04_util/CMakeLists.txt index 4a9d149239..b391ec8695 100644 --- a/src/modules/managed/components/xhc_hb04_util/CMakeLists.txt +++ b/src/modules/managed/components/xhc_hb04_util/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_XHC_HB04_UTIL_MANAGED_MODULE "Built the XHC HB04 Util HAL managed module." TRUE) if(BUILD_XHC_HB04_UTIL_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( xhc_hb04_util diff --git a/src/modules/managed/components/xhc_hb04_utilv2/CMakeLists.txt b/src/modules/managed/components/xhc_hb04_utilv2/CMakeLists.txt index 44d8ad3d71..75b93e22d1 100644 --- a/src/modules/managed/components/xhc_hb04_utilv2/CMakeLists.txt +++ b/src/modules/managed/components/xhc_hb04_utilv2/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_XHC_HB04_UTILV2_MANAGED_MODULE "Built the XHC HB04 Util V2 HAL managed module." TRUE) if(BUILD_XHC_HB04_UTILV2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( xhc_hb04_utilv2 diff --git a/src/modules/managed/components/xor2/CMakeLists.txt b/src/modules/managed/components/xor2/CMakeLists.txt index 14d2d758ac..db5a69b1e0 100644 --- a/src/modules/managed/components/xor2/CMakeLists.txt +++ b/src/modules/managed/components/xor2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_XOR2_MANAGED_MODULE "Built the XOR2 HAL managed module." TRUE) if(BUILD_XOR2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( xor2 diff --git a/src/modules/managed/components/xor2v2/CMakeLists.txt b/src/modules/managed/components/xor2v2/CMakeLists.txt index 775083b0df..37d547a7bf 100644 --- a/src/modules/managed/components/xor2v2/CMakeLists.txt +++ b/src/modules/managed/components/xor2v2/CMakeLists.txt @@ -27,7 +27,7 @@ option(BUILD_XOR2V2_MANAGED_MODULE "Built the XOR2 V2 HAL managed module." TRUE) if(BUILD_XOR2V2_MANAGED_MODULE) - include(MachinekitHALInstcomp) + include(MachinekitHALInstcompFunction) add_instantiatable_module( xor2v2 diff --git a/src/modules/managed/drivers/CMakeLists.txt b/src/modules/managed/drivers/CMakeLists.txt index 42a9ee8a41..a2f2b09104 100644 --- a/src/modules/managed/drivers/CMakeLists.txt +++ b/src/modules/managed/drivers/CMakeLists.txt @@ -49,7 +49,7 @@ add_subdirectory(hal_zed_gpio) add_subdirectory(hostmot2) add_subdirectory(opto_ac5) add_subdirectory(pci_8255) -add_subdirectory(plc720) +add_subdirectory(pcl720) add_subdirectory(serport) add_subdirectory(servo_to_go) add_subdirectory(uparport) diff --git a/src/modules/managed/drivers/chip/CMakeLists.txt b/src/modules/managed/drivers/chip/CMakeLists.txt index 51bf8e1022..36bda968f5 100644 --- a/src/modules/managed/drivers/chip/CMakeLists.txt +++ b/src/modules/managed/drivers/chip/CMakeLists.txt @@ -29,7 +29,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") "Built the Chip HAL managed driver module." TRUE) if(BUILD_HAL_CHIP_GPIO_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_chip_gpio MODULE) diff --git a/src/modules/managed/drivers/hal_arm335xQEP/CMakeLists.txt b/src/modules/managed/drivers/hal_arm335xQEP/CMakeLists.txt index 512207feab..41c92243a9 100644 --- a/src/modules/managed/drivers/hal_arm335xQEP/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_arm335xQEP/CMakeLists.txt @@ -29,7 +29,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") "Built the Arm335xQEP HAL managed driver module." TRUE) if(BUILD_HAL_ARM335XQEP_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_arm335xqep MODULE) diff --git a/src/modules/managed/drivers/hal_ax5214h/CMakeLists.txt b/src/modules/managed/drivers/hal_ax5214h/CMakeLists.txt index fa5757f5e5..0ff2ac159c 100644 --- a/src/modules/managed/drivers/hal_ax5214h/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_ax5214h/CMakeLists.txt @@ -37,7 +37,7 @@ if(SYS_IO_AVAILABLE) "Built the AX5214H HAL managed driver module." TRUE) if(BUILD_HAL_AX5214H_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_ax5214h MODULE) diff --git a/src/modules/managed/drivers/hal_bb_gpio/CMakeLists.txt b/src/modules/managed/drivers/hal_bb_gpio/CMakeLists.txt index 4f03dabbf1..62de0ca9a7 100644 --- a/src/modules/managed/drivers/hal_bb_gpio/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_bb_gpio/CMakeLists.txt @@ -29,7 +29,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") "Built the BB GPIO HAL managed driver module." TRUE) if(BUILD_HAL_BB_GPIO_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_bb_gpio MODULE) diff --git a/src/modules/managed/drivers/hal_evoreg/CMakeLists.txt b/src/modules/managed/drivers/hal_evoreg/CMakeLists.txt index 6528fa5d85..159cb9244a 100644 --- a/src/modules/managed/drivers/hal_evoreg/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_evoreg/CMakeLists.txt @@ -39,7 +39,7 @@ if(SYS_IO_AVAILABLE) "Built the Evoreg HAL managed driver module." TRUE) if(BUILD_HAL_EVOREG_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_evoreg MODULE) diff --git a/src/modules/managed/drivers/hal_gm/CMakeLists.txt b/src/modules/managed/drivers/hal_gm/CMakeLists.txt index 8fed2604c0..7eed239cc3 100644 --- a/src/modules/managed/drivers/hal_gm/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_gm/CMakeLists.txt @@ -30,7 +30,7 @@ option(BUILD_HAL_GM_MANAGED_DRIVER_MODULE "Built the GM HAL managed driver module." TRUE) if(BUILD_HAL_GM_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_gm MODULE) diff --git a/src/modules/managed/drivers/hal_h3_gpio/CMakeLists.txt b/src/modules/managed/drivers/hal_h3_gpio/CMakeLists.txt index a5dcd2b5f1..a9dca75abe 100644 --- a/src/modules/managed/drivers/hal_h3_gpio/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_h3_gpio/CMakeLists.txt @@ -29,7 +29,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") "Built the H3 GPIO HAL managed driver module." TRUE) if(BUILD_HAL_H3_GPIO_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_h3_gpio MODULE) diff --git a/src/modules/managed/drivers/hal_motenc/CMakeLists.txt b/src/modules/managed/drivers/hal_motenc/CMakeLists.txt index 1c1dfdb096..8766355865 100644 --- a/src/modules/managed/drivers/hal_motenc/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_motenc/CMakeLists.txt @@ -37,7 +37,7 @@ if(SYS_IO_AVAILABLE) "Built the MotEnc HAL managed driver module." TRUE) if(BUILD_HAL_MOTENC_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_motenc MODULE) diff --git a/src/modules/managed/drivers/hal_p260c/CMakeLists.txt b/src/modules/managed/drivers/hal_p260c/CMakeLists.txt index 769f305a22..ec4326d8e0 100644 --- a/src/modules/managed/drivers/hal_p260c/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_p260c/CMakeLists.txt @@ -37,7 +37,7 @@ if(SYS_IO_AVAILABLE) "Built the P260C HAL managed driver module." TRUE) if(BUILD_HAL_P260C_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_p260c MODULE) diff --git a/src/modules/managed/drivers/hal_parport/CMakeLists.txt b/src/modules/managed/drivers/hal_parport/CMakeLists.txt index 28e74803d7..52bde9df92 100644 --- a/src/modules/managed/drivers/hal_parport/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_parport/CMakeLists.txt @@ -37,7 +37,7 @@ if(SYS_IO_AVAILABLE) "Built the Parport HAL managed driver module." TRUE) if(BUILD_HAL_PARPORT_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_parport MODULE) diff --git a/src/modules/managed/drivers/hal_ppmc/CMakeLists.txt b/src/modules/managed/drivers/hal_ppmc/CMakeLists.txt index 3ef32e40de..1e50d2f141 100644 --- a/src/modules/managed/drivers/hal_ppmc/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_ppmc/CMakeLists.txt @@ -30,7 +30,7 @@ option(BUILD_HAL_PPMC_MANAGED_DRIVER_MODULE "Built the PPMC HAL managed driver module." TRUE) if(BUILD_HAL_PPMC_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_ppmc MODULE) diff --git a/src/modules/managed/drivers/hal_pru/CMakeLists.txt b/src/modules/managed/drivers/hal_pru/CMakeLists.txt index 43dcdb8641..aafce7cfac 100644 --- a/src/modules/managed/drivers/hal_pru/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_pru/CMakeLists.txt @@ -28,7 +28,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") option(BUILD_HAL_PRU_MANAGED_DRIVER_MODULE "Built the PRU HAL managed driver module." TRUE) if(BUILD_HAL_PRU_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_pru MODULE) diff --git a/src/modules/managed/drivers/hal_pru_debug/CMakeLists.txt b/src/modules/managed/drivers/hal_pru_debug/CMakeLists.txt index 0c0d9d8dd7..94ad2f85bb 100644 --- a/src/modules/managed/drivers/hal_pru_debug/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_pru_debug/CMakeLists.txt @@ -28,7 +28,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") option(BUILD_HAL_PRU_DEBUG_MANAGED_DRIVER_MODULE "Built the PRU Debug HAL managed driver module." TRUE) if(BUILD_HAL_PRU_DEBUG_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_pru_debug MODULE) diff --git a/src/modules/managed/drivers/hal_pru_generic/CMakeLists.txt b/src/modules/managed/drivers/hal_pru_generic/CMakeLists.txt index 8d2b5abd58..889fe4d598 100644 --- a/src/modules/managed/drivers/hal_pru_generic/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_pru_generic/CMakeLists.txt @@ -29,7 +29,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") "Built the PRU Generic HAL managed driver module." TRUE) if(BUILD_HAL_PRU_GENERIC_MANAGED_DRIVER_MODULE) - cmake_minimum_required(VERSION 3.21) + cmake_minimum_required(VERSION 3.22) project( HAL-PRU-generic @@ -257,7 +257,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") # ~~~ # The MODULE portion ### # ~~~ - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) target_link_libraries( hal_pru_generic PRIVATE runtime_api hal_api user_pci runtime_math diff --git a/src/modules/managed/drivers/hal_raspi_gpio/CMakeLists.txt b/src/modules/managed/drivers/hal_raspi_gpio/CMakeLists.txt index 1cba3ed176..8f739c47f4 100644 --- a/src/modules/managed/drivers/hal_raspi_gpio/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_raspi_gpio/CMakeLists.txt @@ -29,7 +29,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") "Built the Raspberry Pi GPIO HAL managed driver module." TRUE) if(BUILD_HAL_RASPI_GPIO_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_raspi_gpio MODULE) @@ -58,9 +58,8 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") LIBRARY DESTINATION "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" COMPONENT MachinekitHAL_Managed_Module_HAL_RASPI_GPIO_Drivers) - cpack_add_component( - MachinekitHAL_Managed_Module_HAL_RASPI_GPIO_Drivers - GROUP MachinekitHAL_Managed_Module_HAL_RASPI_GPIO) + cpack_add_component(MachinekitHAL_Managed_Module_HAL_RASPI_GPIO_Drivers + GROUP MachinekitHAL_Managed_Module_HAL_RASPI_GPIO) # Specification of artifacts placement in package tree cpack_add_component_group( diff --git a/src/modules/managed/drivers/hal_raspi_spi/CMakeLists.txt b/src/modules/managed/drivers/hal_raspi_spi/CMakeLists.txt index b6937ba361..e9d956c6ca 100644 --- a/src/modules/managed/drivers/hal_raspi_spi/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_raspi_spi/CMakeLists.txt @@ -29,7 +29,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") "Built the Raspberry Pi SPI HAL managed driver module." TRUE) if(BUILD_HAL_RASPI_SPI_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_raspi_spi MODULE) diff --git a/src/modules/managed/drivers/hal_skeleton/CMakeLists.txt b/src/modules/managed/drivers/hal_skeleton/CMakeLists.txt index c4d61032e2..d92dcece55 100644 --- a/src/modules/managed/drivers/hal_skeleton/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_skeleton/CMakeLists.txt @@ -37,7 +37,7 @@ if(SYS_IO_AVAILABLE) "Built the Skeleton HAL managed driver module." TRUE) if(BUILD_HAL_SKELETON_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_skeleton MODULE) diff --git a/src/modules/managed/drivers/hal_speaker/CMakeLists.txt b/src/modules/managed/drivers/hal_speaker/CMakeLists.txt index 25da1f9f7b..0d07103164 100644 --- a/src/modules/managed/drivers/hal_speaker/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_speaker/CMakeLists.txt @@ -37,7 +37,7 @@ if(SYS_IO_AVAILABLE) "Built the Speaker HAL managed driver module." TRUE) if(BUILD_HAL_SPEAKER_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_speaker MODULE) diff --git a/src/modules/managed/drivers/hal_tiro/CMakeLists.txt b/src/modules/managed/drivers/hal_tiro/CMakeLists.txt index 6132e294b0..3bf88ec0a8 100644 --- a/src/modules/managed/drivers/hal_tiro/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_tiro/CMakeLists.txt @@ -37,7 +37,7 @@ if(SYS_IO_AVAILABLE) "Built the Tiro HAL managed driver module." TRUE) if(BUILD_HAL_TIRO_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_tiro MODULE) diff --git a/src/modules/managed/drivers/hal_vti/CMakeLists.txt b/src/modules/managed/drivers/hal_vti/CMakeLists.txt index bc0cf93e2a..9908a71e3e 100644 --- a/src/modules/managed/drivers/hal_vti/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_vti/CMakeLists.txt @@ -37,7 +37,7 @@ if(SYS_IO_AVAILABLE) "Built the VTI HAL managed driver module." TRUE) if(BUILD_HAL_VTI_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_vti MODULE) diff --git a/src/modules/managed/drivers/hal_zed_can/CMakeLists.txt b/src/modules/managed/drivers/hal_zed_can/CMakeLists.txt index d9cc25c767..6411525aac 100644 --- a/src/modules/managed/drivers/hal_zed_can/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_zed_can/CMakeLists.txt @@ -29,7 +29,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") "Built the Zed CAN HAL managed driver module." TRUE) if(BUILD_HAL_ZED_CAN_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_zed_can MODULE) diff --git a/src/modules/managed/drivers/hal_zed_gpio/CMakeLists.txt b/src/modules/managed/drivers/hal_zed_gpio/CMakeLists.txt index 6e79fd71cc..1fde3e7cf1 100644 --- a/src/modules/managed/drivers/hal_zed_gpio/CMakeLists.txt +++ b/src/modules/managed/drivers/hal_zed_gpio/CMakeLists.txt @@ -29,7 +29,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") "Built the Zed GPIO HAL managed driver module." TRUE) if(BUILD_HAL_ZED_GPIO_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_zed_gpio MODULE) diff --git a/src/modules/managed/drivers/hostmot2/hostmot2_7i43/CMakeLists.txt b/src/modules/managed/drivers/hostmot2/hostmot2_7i43/CMakeLists.txt index 917f9fd87e..250ce31948 100644 --- a/src/modules/managed/drivers/hostmot2/hostmot2_7i43/CMakeLists.txt +++ b/src/modules/managed/drivers/hostmot2/hostmot2_7i43/CMakeLists.txt @@ -37,7 +37,7 @@ if(SYS_IO_AVAILABLE) "Built the Hostmot2 7I43 HAL managed driver module." TRUE) if(BUILD_HOSTMOT2_7I43_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hostmot2_7i43 MODULE) diff --git a/src/modules/managed/drivers/hostmot2/hostmot2_7i90/CMakeLists.txt b/src/modules/managed/drivers/hostmot2/hostmot2_7i90/CMakeLists.txt index 54778fea6b..d188f48d68 100644 --- a/src/modules/managed/drivers/hostmot2/hostmot2_7i90/CMakeLists.txt +++ b/src/modules/managed/drivers/hostmot2/hostmot2_7i90/CMakeLists.txt @@ -37,7 +37,7 @@ if(SYS_IO_AVAILABLE) "Built the Hostmot2 7I90 HAL managed driver module." TRUE) if(BUILD_HOSTMOT2_7I90_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hostmot2_7i90 MODULE) diff --git a/src/modules/managed/drivers/hostmot2/hostmot2_core/CMakeLists.txt b/src/modules/managed/drivers/hostmot2/hostmot2_core/CMakeLists.txt index df61bd9802..eea0b369ab 100644 --- a/src/modules/managed/drivers/hostmot2/hostmot2_core/CMakeLists.txt +++ b/src/modules/managed/drivers/hostmot2/hostmot2_core/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_HOSTMOT2_CORE_MANAGED_DRIVER_MODULE "Built the Hostmot2 Core HAL managed driver module." TRUE) if(BUILD_HOSTMOT2_CORE_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hostmot2_api INTERFACE) add_library(${MACHINEKIT_HAL_NAMESPACE}::hostmot2_api ALIAS hostmot2_api) diff --git a/src/modules/managed/drivers/hostmot2/hostmot2_core/test/CMakeLists.txt b/src/modules/managed/drivers/hostmot2/hostmot2_core/test/CMakeLists.txt index 1d97221e1d..57d1fab2a1 100644 --- a/src/modules/managed/drivers/hostmot2/hostmot2_core/test/CMakeLists.txt +++ b/src/modules/managed/drivers/hostmot2/hostmot2_core/test/CMakeLists.txt @@ -24,7 +24,7 @@ # ##################################################################### # ~~~ -include(MachinekitHALSymbolVisibility) +include(MachinekitHALSymbolVisibilityFunction) add_library(hostmot2_test MODULE) diff --git a/src/modules/managed/drivers/hostmot2/hostmot2_eth/CMakeLists.txt b/src/modules/managed/drivers/hostmot2/hostmot2_eth/CMakeLists.txt index e437300742..12823c8b14 100644 --- a/src/modules/managed/drivers/hostmot2/hostmot2_eth/CMakeLists.txt +++ b/src/modules/managed/drivers/hostmot2/hostmot2_eth/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_HOSTMOT2_ETH_MANAGED_DRIVER_MODULE "Built the Hostmot2 Eth HAL managed driver module." TRUE) if(BUILD_HOSTMOT2_ETH_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hostmot2_eth MODULE) diff --git a/src/modules/managed/drivers/hostmot2/hostmot2_pci/CMakeLists.txt b/src/modules/managed/drivers/hostmot2/hostmot2_pci/CMakeLists.txt index e146ba56ef..69b255bb26 100644 --- a/src/modules/managed/drivers/hostmot2/hostmot2_pci/CMakeLists.txt +++ b/src/modules/managed/drivers/hostmot2/hostmot2_pci/CMakeLists.txt @@ -37,7 +37,7 @@ if(SYS_IO_AVAILABLE) "Built the Hostmot2 PCI HAL managed driver module." TRUE) if(BUILD_HOSTMOT2_PCI_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hostmot2_pci MODULE) diff --git a/src/modules/managed/drivers/hostmot2/hostmot2_setsserial/CMakeLists.txt b/src/modules/managed/drivers/hostmot2/hostmot2_setsserial/CMakeLists.txt index 9d6dba8ce6..1724ba7655 100644 --- a/src/modules/managed/drivers/hostmot2/hostmot2_setsserial/CMakeLists.txt +++ b/src/modules/managed/drivers/hostmot2/hostmot2_setsserial/CMakeLists.txt @@ -28,7 +28,7 @@ option(BUILD_HOSTMOT2_SETSERIAL_MANAGED_DRIVER_MODULE "Built the Hostmot2 SetSerial HAL managed driver module." TRUE) if(BUILD_HOSTMOT2_SETSERIAL_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hostmot2_setserial MODULE) diff --git a/src/modules/managed/drivers/hostmot2/hostmot2_soc_ol/CMakeLists.txt b/src/modules/managed/drivers/hostmot2/hostmot2_soc_ol/CMakeLists.txt index c265726902..7baf8e171e 100644 --- a/src/modules/managed/drivers/hostmot2/hostmot2_soc_ol/CMakeLists.txt +++ b/src/modules/managed/drivers/hostmot2/hostmot2_soc_ol/CMakeLists.txt @@ -29,7 +29,7 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm.*") "Built the Hostmot2 SoC OL HAL managed driver module." TRUE) if(BUILD_HOSTMOT2_SOC_OL_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hostmot2_soc_ol MODULE) diff --git a/src/modules/managed/drivers/hostmot2/mesa_7i65/CMakeLists.txt b/src/modules/managed/drivers/hostmot2/mesa_7i65/CMakeLists.txt index 71394e6ce5..ba540cdef5 100644 --- a/src/modules/managed/drivers/hostmot2/mesa_7i65/CMakeLists.txt +++ b/src/modules/managed/drivers/hostmot2/mesa_7i65/CMakeLists.txt @@ -23,3 +23,27 @@ # # ##################################################################### # ~~~ + +option(BUILD_MESA_7I65_MANAGED_MODULE "Built the Mesa 7i65 HAL managed module." + TRUE) + +if(BUILD_MESA_7I65_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + mesa_7i65 + SOURCE + src/mesa_7i65.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + LINK_LIBRARIES + hostmot2_api + hostmot2_bitfile + user_pci + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_dependencies(mesa_7i65 comp_executable) +endif() diff --git a/src/modules/managed/drivers/hostmot2/mesa_uart/CMakeLists.txt b/src/modules/managed/drivers/hostmot2/mesa_uart/CMakeLists.txt index 71394e6ce5..4dfb59c5f7 100644 --- a/src/modules/managed/drivers/hostmot2/mesa_uart/CMakeLists.txt +++ b/src/modules/managed/drivers/hostmot2/mesa_uart/CMakeLists.txt @@ -23,3 +23,27 @@ # # ##################################################################### # ~~~ + +option(BUILD_MESA_UART_MANAGED_MODULE "Built the Mesa UART HAL managed module." + TRUE) + +if(BUILD_MESA_UART_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + mesa_uart + SOURCE + src/mesa_uart.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + LINK_LIBRARIES + hostmot2_api + hostmot2_bitfile + user_pci + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_dependencies(mesa_uart comp_executable) +endif() diff --git a/src/modules/managed/drivers/opto_ac5/CMakeLists.txt b/src/modules/managed/drivers/opto_ac5/CMakeLists.txt index ce88050bb1..f33f62fb48 100644 --- a/src/modules/managed/drivers/opto_ac5/CMakeLists.txt +++ b/src/modules/managed/drivers/opto_ac5/CMakeLists.txt @@ -30,7 +30,7 @@ option(BUILD_OPTO_AC5_MANAGED_DRIVER_MODULE "Built the Opto AC5 HAL managed driver module." TRUE) if(BUILD_OPTO_AC5_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(opto_ac5 MODULE) diff --git a/src/modules/managed/drivers/pci_8255/CMakeLists.txt b/src/modules/managed/drivers/pci_8255/CMakeLists.txt index 7199d282ff..bcc382acfb 100644 --- a/src/modules/managed/drivers/pci_8255/CMakeLists.txt +++ b/src/modules/managed/drivers/pci_8255/CMakeLists.txt @@ -37,7 +37,7 @@ if(SYS_IO_AVAILABLE) "Built the PCI 8255 HAL managed driver module." TRUE) if(BUILD_PCI_8255_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(pci_8255 MODULE) diff --git a/src/modules/managed/drivers/plc720/CMakeLists.txt b/src/modules/managed/drivers/pcl720/CMakeLists.txt similarity index 59% rename from src/modules/managed/drivers/plc720/CMakeLists.txt rename to src/modules/managed/drivers/pcl720/CMakeLists.txt index 49478cfd28..502c701857 100644 --- a/src/modules/managed/drivers/plc720/CMakeLists.txt +++ b/src/modules/managed/drivers/pcl720/CMakeLists.txt @@ -33,34 +33,23 @@ if(NOT DEFINED SYS_IO_AVAILABLE) endif() if(SYS_IO_AVAILABLE) - #[[ - option(BUILD_HAL_PARPORT_MANAGED_DRIVER_MODULE - "Built the Parport HAL managed driver module." TRUE) - - if(BUILD_HAL_PARPORT_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) - - add_library(hal_parport MODULE) - - set(SOURCE_FILES src/hal_parport.c) - - target_sources(hal_parport PRIVATE ${SOURCE_FILES}) - - target_link_libraries(hal_parport PRIVATE hal_api runtime_api) - - export_rtapi_symbols(TARGET hal_parport) - - target_compile_definitions(hal_parport PRIVATE "RTAPI") - - set_target_properties( - hal_parport - PROPERTIES PREFIX "mod" - LIBRARY_OUTPUT_DIRECTORY - "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}") - - install( - TARGETS hal_parport - LIBRARY DESTINATION "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" - COMPONENT MachinekitHAL_Managed_Driver_Module_HAL_Parport) - endif()]] + option(BUILD_PCL720_MANAGED_MODULE "Built the PCL720 HAL managed module." + TRUE) + + if(BUILD_PCL720_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + pcl720 + SOURCE + src/pcl720.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_dependencies(pcl720 comp_executable) + endif() endif() diff --git a/src/modules/managed/drivers/plc720/src/pcl720.comp b/src/modules/managed/drivers/pcl720/src/pcl720.comp similarity index 100% rename from src/modules/managed/drivers/plc720/src/pcl720.comp rename to src/modules/managed/drivers/pcl720/src/pcl720.comp diff --git a/src/modules/managed/drivers/serport/CMakeLists.txt b/src/modules/managed/drivers/serport/CMakeLists.txt index 49478cfd28..01a1e74722 100644 --- a/src/modules/managed/drivers/serport/CMakeLists.txt +++ b/src/modules/managed/drivers/serport/CMakeLists.txt @@ -33,34 +33,23 @@ if(NOT DEFINED SYS_IO_AVAILABLE) endif() if(SYS_IO_AVAILABLE) - #[[ - option(BUILD_HAL_PARPORT_MANAGED_DRIVER_MODULE - "Built the Parport HAL managed driver module." TRUE) - - if(BUILD_HAL_PARPORT_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) - - add_library(hal_parport MODULE) - - set(SOURCE_FILES src/hal_parport.c) - - target_sources(hal_parport PRIVATE ${SOURCE_FILES}) - - target_link_libraries(hal_parport PRIVATE hal_api runtime_api) - - export_rtapi_symbols(TARGET hal_parport) - - target_compile_definitions(hal_parport PRIVATE "RTAPI") - - set_target_properties( - hal_parport - PROPERTIES PREFIX "mod" - LIBRARY_OUTPUT_DIRECTORY - "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}") - - install( - TARGETS hal_parport - LIBRARY DESTINATION "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" - COMPONENT MachinekitHAL_Managed_Driver_Module_HAL_Parport) - endif()]] + option(BUILD_SERPORT_MANAGED_MODULE "Built the Serport HAL managed module." + TRUE) + + if(BUILD_SERPORT_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_managed_module( + serport + SOURCE + src/serport.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_MANAGED_MODULE_DIRECTORY}" + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Managed_Modules_Components) + + add_dependencies(serport comp_executable) + endif() endif() diff --git a/src/modules/managed/drivers/servo_to_go/CMakeLists.txt b/src/modules/managed/drivers/servo_to_go/CMakeLists.txt index b7d5857fe4..4ed27b7d21 100644 --- a/src/modules/managed/drivers/servo_to_go/CMakeLists.txt +++ b/src/modules/managed/drivers/servo_to_go/CMakeLists.txt @@ -37,7 +37,7 @@ if(SYS_IO_AVAILABLE) "Built the STG HAL managed driver module." TRUE) if(BUILD_HAL_STG_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(hal_stg MODULE) diff --git a/src/modules/managed/drivers/uparport/CMakeLists.txt b/src/modules/managed/drivers/uparport/CMakeLists.txt index cf23b30175..10a59623de 100644 --- a/src/modules/managed/drivers/uparport/CMakeLists.txt +++ b/src/modules/managed/drivers/uparport/CMakeLists.txt @@ -38,7 +38,7 @@ if(SYS_IO_AVAILABLE) "Built the Parport HAL managed driver module." TRUE) if(BUILD_UPARPORT_MANAGED_DRIVER_MODULE) - include(MachinekitHALSymbolVisibility) + include(MachinekitHALSymbolVisibilityFunction) add_library(uparport MODULE) diff --git a/src/modules/unmanaged/components/CMakeLists.txt b/src/modules/unmanaged/components/CMakeLists.txt index 969545ad1d..fd4b52d882 100644 --- a/src/modules/unmanaged/components/CMakeLists.txt +++ b/src/modules/unmanaged/components/CMakeLists.txt @@ -30,7 +30,6 @@ add_subdirectory(halstreamer) add_subdirectory(haltalk) add_subdirectory(input) add_subdirectory(meter) -add_subdirectory(remote) add_subdirectory(ringbench) add_subdirectory(ringdemo) add_subdirectory(sampler_latency_usr) diff --git a/src/modules/unmanaged/components/input/CMakeLists.txt b/src/modules/unmanaged/components/input/CMakeLists.txt index 2104bd3d8b..e4a99c8608 100644 --- a/src/modules/unmanaged/components/input/CMakeLists.txt +++ b/src/modules/unmanaged/components/input/CMakeLists.txt @@ -62,17 +62,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_input.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_input.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Unmanaged_Module_Input_Python_Packages) diff --git a/src/modules/unmanaged/components/ringdemo/CMakeLists.txt b/src/modules/unmanaged/components/ringdemo/CMakeLists.txt index b9ab98e16e..2a651a5594 100644 --- a/src/modules/unmanaged/components/ringdemo/CMakeLists.txt +++ b/src/modules/unmanaged/components/ringdemo/CMakeLists.txt @@ -80,8 +80,29 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/ringread.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/ringwrite.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/zmqringpub.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/zmqringsub.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/ringread.py @@ -89,11 +110,31 @@ if(BUILD_PYTHON_DISTRIBUTIONS) ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/zmqringpub.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/zmqringsub.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Unmanaged_Module_Ringdemo_Python_Packages) diff --git a/src/modules/unmanaged/components/scounter/CMakeLists.txt b/src/modules/unmanaged/components/scounter/CMakeLists.txt index 71394e6ce5..ebdd262983 100644 --- a/src/modules/unmanaged/components/scounter/CMakeLists.txt +++ b/src/modules/unmanaged/components/scounter/CMakeLists.txt @@ -23,3 +23,23 @@ # # ##################################################################### # ~~~ + +option(BUILD_SCOUNTER_MANAGED_MODULE "Built the Scounter HAL managed module." + TRUE) + +if(BUILD_SCOUNTER_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_unmanaged_module( + scounter + SOURCE + src/scounter.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_UNMANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_UNMANAGED_MODULE_DIRECTORY}" + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Unmanaged_Modules_Components) + + add_dependencies(scounter comp_executable) +endif() diff --git a/src/modules/unmanaged/components/storage/CMakeLists.txt b/src/modules/unmanaged/components/storage/CMakeLists.txt index 1a2d575afe..9cbdaedd60 100644 --- a/src/modules/unmanaged/components/storage/CMakeLists.txt +++ b/src/modules/unmanaged/components/storage/CMakeLists.txt @@ -62,17 +62,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_storage.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_storage.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Unmanaged_Module_Storage_Python_Packages) diff --git a/src/modules/unmanaged/components/videoserver/CMakeLists.txt b/src/modules/unmanaged/components/videoserver/CMakeLists.txt index f451bbd790..ac38ddb7a0 100644 --- a/src/modules/unmanaged/components/videoserver/CMakeLists.txt +++ b/src/modules/unmanaged/components/videoserver/CMakeLists.txt @@ -62,17 +62,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/videoserver.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/videoserver.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Unmanaged_Module_Videoserver_Python_Packages) diff --git a/src/modules/unmanaged/drivers/adxl345/CMakeLists.txt b/src/modules/unmanaged/drivers/adxl345/CMakeLists.txt index 71394e6ce5..06ba1c1e54 100644 --- a/src/modules/unmanaged/drivers/adxl345/CMakeLists.txt +++ b/src/modules/unmanaged/drivers/adxl345/CMakeLists.txt @@ -23,3 +23,25 @@ # # ##################################################################### # ~~~ + +option(BUILD_ADXL345_MANAGED_MODULE "Built the ADXL345 HAL managed module." + TRUE) + +if(BUILD_ADXL345_MANAGED_MODULE) + include(MachinekitHALCompFunction) + + add_legacy_unmanaged_module( + adxl345 + SOURCE + src/adxl345.comp + OUTPUT_DIRECTORY + "${MACHINEKIT_HAL_UNMANAGED_MODULE_OUTPUT_DIRECTORY}" + INSTALL_DIRECTORY + "${MACHINEKIT_HAL_UNMANAGED_MODULE_DIRECTORY}" + LINK_LIBRARIES + runtime_math + CPACK_OUTPUT_GROUP + MachinekitHAL_Package_Base_Unmanaged_Modules_Components) + + add_dependencies(adxl345 comp_executable) +endif() diff --git a/src/modules/unmanaged/drivers/gpio_mcp23017/CMakeLists.txt b/src/modules/unmanaged/drivers/gpio_mcp23017/CMakeLists.txt index 8c1b2e8edd..d297ba5ff7 100644 --- a/src/modules/unmanaged/drivers/gpio_mcp23017/CMakeLists.txt +++ b/src/modules/unmanaged/drivers/gpio_mcp23017/CMakeLists.txt @@ -64,17 +64,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_gpio_mcp23017.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_gpio_mcp23017.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel( WHEEL "${OUTPUT_INDEX}" COMPONENT @@ -87,7 +125,6 @@ if(BUILD_PYTHON_DISTRIBUTIONS) # Specification of artifacts placement in package tree cpack_add_component_group( MachinekitHAL_Unmanaged_Module_GPIO_MCP23017 - PARENT_GROUP - MachinekitHAL_Package_Base_Python_Unmanaged_Modules_Drivers) + PARENT_GROUP MachinekitHAL_Package_Base_Python_Unmanaged_Modules_Drivers) endif() endif() diff --git a/src/modules/unmanaged/drivers/gy68/CMakeLists.txt b/src/modules/unmanaged/drivers/gy68/CMakeLists.txt index 167876221b..20e8078199 100644 --- a/src/modules/unmanaged/drivers/gy68/CMakeLists.txt +++ b/src/modules/unmanaged/drivers/gy68/CMakeLists.txt @@ -62,17 +62,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_gy86.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_gy86.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel(WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Unmanaged_Module_GY68_Python_Package_Drivers) diff --git a/src/modules/unmanaged/drivers/pwm_pca9685/CMakeLists.txt b/src/modules/unmanaged/drivers/pwm_pca9685/CMakeLists.txt index a1f1402d89..ba8e13a801 100644 --- a/src/modules/unmanaged/drivers/pwm_pca9685/CMakeLists.txt +++ b/src/modules/unmanaged/drivers/pwm_pca9685/CMakeLists.txt @@ -62,17 +62,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_pwm_pca9685.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_pwm_pca9685.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel( WHEEL "${OUTPUT_INDEX}" COMPONENT diff --git a/src/modules/unmanaged/drivers/temp_ads7828/CMakeLists.txt b/src/modules/unmanaged/drivers/temp_ads7828/CMakeLists.txt index dba848ee8a..f35fb0afcd 100644 --- a/src/modules/unmanaged/drivers/temp_ads7828/CMakeLists.txt +++ b/src/modules/unmanaged/drivers/temp_ads7828/CMakeLists.txt @@ -64,17 +64,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_temp_ads7828.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_temp_ads7828.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel( WHEEL "${OUTPUT_INDEX}" COMPONENT diff --git a/src/modules/unmanaged/drivers/temp_atlas/CMakeLists.txt b/src/modules/unmanaged/drivers/temp_atlas/CMakeLists.txt index e65bc7a80b..646706cbd6 100644 --- a/src/modules/unmanaged/drivers/temp_atlas/CMakeLists.txt +++ b/src/modules/unmanaged/drivers/temp_atlas/CMakeLists.txt @@ -63,17 +63,55 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_temp_atlas.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_temp_atlas.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) install_wheel( WHEEL "${OUTPUT_INDEX}" COMPONENT diff --git a/src/modules/unmanaged/drivers/temp_bbb/CMakeLists.txt b/src/modules/unmanaged/drivers/temp_bbb/CMakeLists.txt index 2c7859633a..397b6becf8 100644 --- a/src/modules/unmanaged/drivers/temp_bbb/CMakeLists.txt +++ b/src/modules/unmanaged/drivers/temp_bbb/CMakeLists.txt @@ -64,19 +64,57 @@ if(BUILD_PYTHON_DISTRIBUTIONS) configure_file(${PYTHON_PYPROJECT} ${PACKAGE_NAME}/pyproject.toml @ONLY NEWLINE_STYLE UNIX NO_SOURCE_PERMISSIONS) - add_custom_target( - ${DISTRIBUTION_NAME}_distribution ALL + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_temp_bbb.py ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml - COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${OUTPUT_INDEX}" + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.whl" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" - COMMAND ${PYPROJECT_BUILD} -s -w -o ${OUTPUT_INDEX} - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME} - COMMENT "Building Python package ${DISTRIBUTION_NAME} via external tool") + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-w" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp" + COMMENT + "Building Python package wheel ${DISTRIBUTION_NAME} via external tool") + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/__init__.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/src/${MACHINEKIT_HAL_PACKAGE_PREFIX_PATH}/${PACKAGE_NAME}/hal_temp_bbb.py + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/pyproject.toml + COMMAND ${CMAKE_COMMAND} "-E" "rm" "-f" "${OUTPUT_INDEX}/*.tar.gz" + COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${OUTPUT_INDEX}" + COMMAND + ${CMAKE_COMMAND} "-E" "env" + "CMAKE_PREFIX_PATH=${MACHINEKIT_HAL_CMAKE_PACKAGE_OUTPUT_DIRECTORY}" + "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "${PYPROJECT_BUILD}" "-s" + "-o" "${OUTPUT_INDEX}" "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "touch" + "${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp" + COMMENT + "Building Python package sdist ${DISTRIBUTION_NAME} via external tool") + + add_custom_target( + ${DISTRIBUTION_NAME}_wheel_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_wheel.stamp + COMMENT + "Requesting building Python package wheel ${DISTRIBUTION_NAME} via external tool" + ) + + add_custom_target( + ${DISTRIBUTION_NAME}_sdist_distribution ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_${PACKAGE_NAME}_sdist.stamp + COMMENT + "Requesting building Python package sdist ${DISTRIBUTION_NAME} via external tool" + ) - install_wheel( + install_wheel( WHEEL "${OUTPUT_INDEX}" COMPONENT MachinekitHAL_Unmanaged_Module_Temp_BBB_Python_Package_Drivers) diff --git a/support/cmake/languages/CMakeASM-PRUInformation.cmake b/support/cmake/languages/CMakeASM-PRUInformation.cmake index 2978c6a3a4..f8bfcd5ba4 100644 --- a/support/cmake/languages/CMakeASM-PRUInformation.cmake +++ b/support/cmake/languages/CMakeASM-PRUInformation.cmake @@ -19,9 +19,9 @@ set(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS p) # he is following the requirement # # Because the Ninja build-system generator for some reason does not recognize -# the build rule substitution in COMPILE_OBJECT step (and Make has a problem -# with copying the built artifacts to the target output directory), use this hack -# to make both Make and Ninja working and happy +# the build rule substitution in COMPILE_OBJECT step (and Make has a +# problem with copying the built artifacts to the target output directory), use +# this hack to make both Make and Ninja working and happy if(CMAKE_GENERATOR MATCHES "Ninja") set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "mkdir -p $$(echo \"\" | sed 's/\\.//g')" diff --git a/support/cmake/tools/PEP427Installer.cmake b/support/cmake/tools/PEP427Installer.cmake index 2224659b6c..2edbdbfe6f 100644 --- a/support/cmake/tools/PEP427Installer.cmake +++ b/support/cmake/tools/PEP427Installer.cmake @@ -72,6 +72,9 @@ function(install_wheel) if(${prefix}_INTERPRETER) set(PYTHON_INTERPRETER "${prefix}_INTERPRETER") + else() + set(PYTHON_INTERPRETER + "${MACHINEKIT_HAL_PYTHON_INTERPRETER_INSTALL_EXECUTABLE}") endif() set(PYTHON_WHEEL_PACKAGE "${${prefix}_WHEEL}") @@ -86,7 +89,8 @@ function(install_wheel) set(PYTHON_PLATSTDLIB_PATH "\$ENV{DESTDIR}${${prefix}_PLATSTDLIB_PATH}") else() set(PYTHON_PLATSTDLIB_PATH - "\$ENV{DESTDIR}${MACHINEKIT_HAL_PYTHON_PLATSTDLIB_FULL_INSTALL_DIRECTORY}") + "\$ENV{DESTDIR}${MACHINEKIT_HAL_PYTHON_PLATSTDLIB_FULL_INSTALL_DIRECTORY}" + ) endif() if(${prefix}_PURELIB_PATH) set(PYTHON_PURELIB_PATH "\$ENV{DESTDIR}${${prefix}_PURELIB_PATH}") diff --git a/support/cmake/tools/PEP503PythonIndex.cmake b/support/cmake/tools/PEP503PythonIndex.cmake index 49598937f8..cea20af854 100644 --- a/support/cmake/tools/PEP503PythonIndex.cmake +++ b/support/cmake/tools/PEP503PythonIndex.cmake @@ -39,9 +39,22 @@ find_package( REQUIRED) find_program(FIND "find" REQUIRED) +# find_program(XARGS "xargs" REQUIRED) +find_program(PIP "pip" "pip3" REQUIRED) + +configure_file( + ${CMAKE_CURRENT_LIST_DIR}/PEP503PythonIndex/create_index.py.in + ${CMAKE_CURRENT_BINARY_DIR}/PEP503PythonIndex/create_index.py.configured @ONLY + NO_SOURCE_PERMISSIONS NEWLINE_STYLE UNIX) + +file( + GENERATE + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/PEP503PythonIndex/$/create_index.py + INPUT ${CMAKE_CURRENT_BINARY_DIR}/PEP503PythonIndex/create_index.py.configured + NO_SOURCE_PERMISSIONS NEWLINE_STYLE UNIX) add_custom_target( - create_binary_tree_venv ALL + create_binary_tree_venv COMMAND ${CMAKE_COMMAND} "-E" "rm" "-rf" "${PYTHON_VENV_DIRECTORY}" COMMAND ${CMAKE_COMMAND} "-E" "make_directory" "${PYTHON_VENV_DIRECTORY}" COMMAND Python::Interpreter "-m" "venv" "--system-site-packages" "--prompt" @@ -53,6 +66,18 @@ add_custom_target( add_custom_target( generate_pep503_index COMMAND Python::Interpreter - "${CMAKE_CURRENT_BINARY_DIR}/create_pep503_index.py" + "${CMAKE_CURRENT_BINARY_DIR}/PEP503PythonIndex/$/create_index.py" COMMENT "Generating the PEP503 Index repository" VERBATIM) + +add_custom_target( + binary_tree_venv + DEPENDS create_binary_tree_venv generate_pep503_index + COMMAND + ${FIND} "${MACHINEKIT_HAL_PYTHON_INDEX}" "-iname" "*.whl" "-exec" + "${PYTHON_VENV_DIRECTORY}/bin/pip" "install" "--force-reinstall" + "--extra-index-url" "file://${MACHINEKIT_HAL_PYTHON_INDEX}" "{}" \; + VERBATIM + COMMENT + "Installing Machinekit-HAL's Python packages into BINARY TREE runtime virtual environment" +) diff --git a/support/cmake/tools/PEP503PythonIndex/createIndex.py b/support/cmake/tools/PEP503PythonIndex/create_index.py.in similarity index 88% rename from support/cmake/tools/PEP503PythonIndex/createIndex.py rename to support/cmake/tools/PEP503PythonIndex/create_index.py.in index 64b60fc409..7c8ca1d860 100644 --- a/support/cmake/tools/PEP503PythonIndex/createIndex.py +++ b/support/cmake/tools/PEP503PythonIndex/create_index.py.in @@ -2,7 +2,7 @@ import re python_index_directory = pathlib.Path( - '/home/mars/Documents/Programming/machinekit/cmk-hal/e/python_index') + '@MACHINEKIT_HAL_PYTHON_INDEX@') html_page_start = """ @@ -24,9 +24,6 @@ def normalize(name): _callable = pathlib.Path.is_dir -print(type(_callable)) -print(_callable.__name__) - for d in python_index_directory.iterdir(): func = getattr(d, _callable.__name__) if func(): diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 0d37302975..19aac40517 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -406,13 +406,12 @@ if(BUILD_RUNTESTS_TESTSUITE) ${CMAKE_CURRENT_SOURCE_DIR}/runtests/overrun/test.sh ${CMAKE_CURRENT_SOURCE_DIR}/runtests/pll_correction/checkresult ${CMAKE_CURRENT_SOURCE_DIR}/runtests/pll_correction/params.py.sh - ${CMAKE_CURRENT_SOURCE_DIR}/runtests/pll_correction/pll_correction.comp ${CMAKE_CURRENT_SOURCE_DIR}/runtests/pll_correction/pll_correction.hal ${CMAKE_CURRENT_SOURCE_DIR}/runtests/pll_correction/pll_time.h ${CMAKE_CURRENT_SOURCE_DIR}/runtests/pll_correction/README.md ${CMAKE_CURRENT_SOURCE_DIR}/runtests/pll_correction/skip ${CMAKE_CURRENT_SOURCE_DIR}/runtests/pll_correction/test.sh - ${CMAKE_CURRENT_SOURCE_DIR}/runtests/README + ${CMAKE_CURRENT_SOURCE_DIR}/runtests/README.asciidoc ${CMAKE_CURRENT_SOURCE_DIR}/runtests/rtapi.0/expected ${CMAKE_CURRENT_SOURCE_DIR}/runtests/rtapi.0/test.sh ${CMAKE_CURRENT_SOURCE_DIR}/runtests/rtapi_printf.0/checkresult @@ -444,14 +443,10 @@ if(BUILD_RUNTESTS_TESTSUITE) ${CMAKE_CURRENT_SOURCE_DIR}/runtests/stepgen-v2.2/test.hal ${CMAKE_CURRENT_SOURCE_DIR}/runtests/symbols.0/checkresult ${CMAKE_CURRENT_SOURCE_DIR}/runtests/symbols.0/dotest.hal - ${CMAKE_CURRENT_SOURCE_DIR}/runtests/symbols.0/test_define.comp ${CMAKE_CURRENT_SOURCE_DIR}/runtests/symbols.0/test.sh - ${CMAKE_CURRENT_SOURCE_DIR}/runtests/symbols.0/test_use.comp ${CMAKE_CURRENT_SOURCE_DIR}/runtests/symbols.1/checkresult ${CMAKE_CURRENT_SOURCE_DIR}/runtests/symbols.1/dotest.hal - ${CMAKE_CURRENT_SOURCE_DIR}/runtests/symbols.1/test_define1.comp ${CMAKE_CURRENT_SOURCE_DIR}/runtests/symbols.1/test.sh - ${CMAKE_CURRENT_SOURCE_DIR}/runtests/symbols.1/test_use1.comp ${CMAKE_CURRENT_SOURCE_DIR}/runtests/threads.0/checkresult ${CMAKE_CURRENT_SOURCE_DIR}/runtests/threads.0/README ${CMAKE_CURRENT_SOURCE_DIR}/runtests/threads.0/test.hal @@ -465,6 +460,7 @@ if(BUILD_RUNTESTS_TESTSUITE) add_custom_target(copy_runtests ALL COMMENT "Copying Runtests source files") + set(test_files "") foreach(source_file IN ITEMS ${RUNTESTS_SOURCE_FILES}) cmake_path(GET source_file PARENT_PATH source_file_parent_path) cmake_path( @@ -480,14 +476,15 @@ if(BUILD_RUNTESTS_TESTSUITE) ) add_custom_command( - TARGET copy_runtests - POST_BUILD + OUTPUT "${output_file}" COMMAND ${CMAKE_COMMAND} "-E" "copy_if_different" "${source_file}" "${output_file}" - BYPRODUCTS "${output_file}" + DEPENDS "${source_file}" COMMENT "Copying runtests source file ${source_file_runtests_relative_part}.") + list(APPEND test_files "${output_file}") + install( FILES "${output_file}" DESTINATION @@ -522,14 +519,19 @@ if(BUILD_RUNTESTS_TESTSUITE) @ONLY NEWLINE_STYLE UNIX) - add_custom_target( - run_runtests ALL - COMMENT "Creating the Run_runtests executable" + add_custom_command( + OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/run_runtests COMMAND ${CMAKE_COMMAND} "-E" "copy_if_different" "${CMAKE_CURRENT_BINARY_DIR}/build/run_runtests" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" - DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/build/run_runtests") + DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/build/run_runtests" + COMMENT "Creating the Run_runtests executable") + + add_custom_target( + run_runtests ALL + COMMENT "Building the Run_runtests executable" + DEPENDS "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/run_runtests" ${test_files}) install( PROGRAMS "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/run_runtests" diff --git a/tests/nosetests/rtapilog.py b/tests/nosetests/rtapilog.py index 222d0ae378..8ab1c906f0 100644 --- a/tests/nosetests/rtapilog.py +++ b/tests/nosetests/rtapilog.py @@ -1,4 +1,4 @@ -from machinekit import rtapi +import machinekit.hal.cyruntime as rtapi import inspect # helper for logging in nosetests scripts to rtapi diff --git a/tests/nosetests/runpytest.sh b/tests/nosetests/runpytest.sh index 4a2c105e53..a1d6d4abc0 100755 --- a/tests/nosetests/runpytest.sh +++ b/tests/nosetests/runpytest.sh @@ -6,7 +6,11 @@ # and RTAPI are loaded into Python, it's impossible to clear out state, even # restarting `realtime`, since `libhal` etc. are now loaded. -PYTEST=pytest-3 +if [ -z ${PYTHON_INTERPRETER+x} ]; +then + PYTHON_INTERPRETER="$(which python3)" || ( echo "Python interpreter could not be found"; exit 1 ) +fi +PYTEST="$PYTHON_INTERPRETER -m pytest" TESTDIR="$(dirname $0)" TESTS="" diff --git a/tests/nosetests/test_compat.py b/tests/nosetests/test_compat.py index 4abd0207b6..fd544c7a3e 100644 --- a/tests/nosetests/test_compat.py +++ b/tests/nosetests/test_compat.py @@ -1,8 +1,7 @@ -#!/usr/bin/env python3 - import pytest +import pathlib -from machinekit import compat +import machinekit.hal.cycompat as compat @pytest.mark.usefixtures('realtime') class TestCompat(object): @@ -10,7 +9,7 @@ class TestCompat(object): def test_get_rtapi_config(self): ld = compat.get_rtapi_config('LIBEXEC_DIR') print(repr(ld)) - assert ld.endswith("libexec") + assert pathlib.Path(ld).exists() (lambda s=__import__('signal'): s.signal(s.SIGTERM, s.SIG_IGN))() diff --git a/tests/nosetests/test_groups.py b/tests/nosetests/test_groups.py index 1e2b744137..c6280d7fed 100644 --- a/tests/nosetests/test_groups.py +++ b/tests/nosetests/test_groups.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 import pytest -from machinekit import hal +import machinekit.hal.cyhal as hal @pytest.mark.usefixtures("realtime") class TestGroup(object): diff --git a/tests/nosetests/test_icomp.py b/tests/nosetests/test_icomp.py index 65c63349d2..a6e35d75a1 100644 --- a/tests/nosetests/test_icomp.py +++ b/tests/nosetests/test_icomp.py @@ -14,7 +14,8 @@ import os from configparser import ConfigParser -from machinekit import rtapi,hal +import machinekit.hal.cyhal as hal +import machinekit.hal.cyruntime as rtapi @pytest.mark.usefixtures("realtime") class TestIcomp(): diff --git a/tests/nosetests/test_instbindings.py b/tests/nosetests/test_instbindings.py index ff7a12232c..84c8ddaf8e 100644 --- a/tests/nosetests/test_instbindings.py +++ b/tests/nosetests/test_instbindings.py @@ -1,12 +1,11 @@ -#!/usr/bin/env python3 - # verify the cython inst bindings import pytest import time,os from configparser import ConfigParser -from machinekit import rtapi,hal +import machinekit.hal.cyhal as hal +import machinekit.hal.cyruntime as rtapi @pytest.mark.usefixtures("realtime") class TestIinst(): diff --git a/tests/nosetests/test_mk_hal_basics.py b/tests/nosetests/test_mk_hal_basics.py index 12b43f6483..7dcf26d246 100644 --- a/tests/nosetests/test_mk_hal_basics.py +++ b/tests/nosetests/test_mk_hal_basics.py @@ -1,6 +1,5 @@ -#!/usr/bin/env python3 import pytest -from machinekit import hal +import machinekit.hal.cyhal as hal import os cname = "pintest%d" % os.getpid() diff --git a/tests/nosetests/test_netcmd.py b/tests/nosetests/test_netcmd.py index 17af55513a..37d183af30 100644 --- a/tests/nosetests/test_netcmd.py +++ b/tests/nosetests/test_netcmd.py @@ -1,9 +1,7 @@ -#!/usr/bin/env python3 - - import pytest from rtapilog import Log -from machinekit import hal,rtapi +import machinekit.hal.cyhal as hal +import machinekit.hal.cyruntime as rtapi l = Log(level=rtapi.MSG_INFO,tag="nosetest") diff --git a/tests/nosetests/test_or2.py b/tests/nosetests/test_or2.py index 432a5550ae..3d04479e89 100644 --- a/tests/nosetests/test_or2.py +++ b/tests/nosetests/test_or2.py @@ -1,9 +1,8 @@ -#!/usr/bin/env python3 - import pytest import time, os from configparser import ConfigParser -from machinekit import rtapi,hal +import machinekit.hal.cyhal as hal +import machinekit.hal.cyruntime as rtapi @pytest.mark.usefixtures("realtime") class TestOr2(): diff --git a/tests/nosetests/test_pinops.py b/tests/nosetests/test_pinops.py index 24572b5624..33a75380d8 100644 --- a/tests/nosetests/test_pinops.py +++ b/tests/nosetests/test_pinops.py @@ -1,7 +1,5 @@ -#!/usr/bin/env python3 - import pytest -from machinekit import hal +import machinekit.hal.cyhal as hal @pytest.mark.usefixtures("realtime") class TestPinOps(): diff --git a/tests/nosetests/test_ring.py b/tests/nosetests/test_ring.py index f3d0a1bcf7..987a97e70c 100644 --- a/tests/nosetests/test_ring.py +++ b/tests/nosetests/test_ring.py @@ -1,8 +1,8 @@ -#!/usr/bin/env python3 import os,time import pytest -from machinekit import rtapi,hal +import machinekit.hal.cyhal as hal +import machinekit.hal.cyruntime as rtapi from configparser import ConfigParser diff --git a/tests/nosetests/test_ring_intracomp.py b/tests/nosetests/test_ring_intracomp.py index f8b62a8122..a3c5339723 100644 --- a/tests/nosetests/test_ring_intracomp.py +++ b/tests/nosetests/test_ring_intracomp.py @@ -1,10 +1,8 @@ -#!/usr/bin/env python3 - # create a ring # assure records written can be read back import pytest -from machinekit import hal +import machinekit.hal.cyhal as hal @pytest.mark.usefixtures('realtime') class TestCompat(object): diff --git a/tests/nosetests/test_ringdemo.py b/tests/nosetests/test_ringdemo.py index 71b534bae3..43610f8f06 100644 --- a/tests/nosetests/test_ringdemo.py +++ b/tests/nosetests/test_ringdemo.py @@ -1,8 +1,8 @@ -#!/usr/bin/env python3 import os,time,sys import pytest -from machinekit import rtapi,hal +import machinekit.hal.cyhal as hal +import machinekit.hal.cyruntime as rtapi from configparser import ConfigParser diff --git a/tests/nosetests/test_rtapi.py b/tests/nosetests/test_rtapi.py index 68716554a4..f87c29bfd6 100644 --- a/tests/nosetests/test_rtapi.py +++ b/tests/nosetests/test_rtapi.py @@ -1,9 +1,8 @@ -#!/usr/bin/env python3 import os import time import pytest -from machinekit import rtapi -from machinekit import hal +import machinekit.hal.cyhal as hal +import machinekit.hal.cyruntime as rtapi from configparser import ConfigParser diff --git a/tests/nosetests/test_streamring.py b/tests/nosetests/test_streamring.py index ad468bd5db..b3df9b4777 100644 --- a/tests/nosetests/test_streamring.py +++ b/tests/nosetests/test_streamring.py @@ -1,10 +1,8 @@ -#!/usr/bin/env python3 - # create a ring # assure records written can be read back import pytest -from machinekit import hal +import machinekit.hal.cyhal as hal size=4096 diff --git a/tests/runtests/README b/tests/runtests/README.asciidoc similarity index 100% rename from tests/runtests/README rename to tests/runtests/README.asciidoc diff --git a/tests/runtests/halmodule.0/test.py b/tests/runtests/halmodule.0/test.py index ee4df31c8c..6eddeca37e 100755 --- a/tests/runtests/halmodule.0/test.py +++ b/tests/runtests/halmodule.0/test.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -import hal +import machinekit.hal.pyhal as hal import os h = hal.component("x") diff --git a/tests/runtests/pll_correction/pll_correction.hal b/tests/runtests/pll_correction/pll_correction.hal index cc049599da..bebb2de4c9 100644 --- a/tests/runtests/pll_correction/pll_correction.hal +++ b/tests/runtests/pll_correction/pll_correction.hal @@ -25,6 +25,6 @@ start # Load userland sampler comp # - LinuxCNC #loadusr -Wn halsampler halsampler -N halsampler -n 2000 -# - Machinekit +# - Machinekit-HAL loadusr -w halsampler -n $(NUMSAMPS_X4) diff --git a/tests/runtests/symbols.0/dotest.hal b/tests/runtests/symbols.0/dotest.hal index 2925eb9ff8..a17a892a63 100644 --- a/tests/runtests/symbols.0/dotest.hal +++ b/tests/runtests/symbols.0/dotest.hal @@ -1,2 +1,2 @@ -loadrt test_define -loadrt test_use +loadrt symbols_define +loadrt symbols_use diff --git a/tests/runtests/symbols.0/test.sh b/tests/runtests/symbols.0/test.sh index 2adcd598b0..0e503dfba7 100644 --- a/tests/runtests/symbols.0/test.sh +++ b/tests/runtests/symbols.0/test.sh @@ -1,5 +1,3 @@ #!/bin/sh set -xe -comp --install test_define.comp -comp --install test_use.comp ! MSGD_OPTS="--stderr" halrun dotest.hal diff --git a/tests/runtests/symbols.1/dotest.hal b/tests/runtests/symbols.1/dotest.hal index d2640853c2..1602efa596 100644 --- a/tests/runtests/symbols.1/dotest.hal +++ b/tests/runtests/symbols.1/dotest.hal @@ -1,9 +1,9 @@ -loadrt test_define1 -loadrt test_use1 +loadrt symbols_define_out +loadrt symbols_use_out newthread thread1 1000000 fp -addf test-define1.0 thread1 -addf test-use1.0 thread1 +addf symbols-define-out.0 thread1 +addf symbols-use-out.0 thread1 start loadusr -w sleep 1 -getp test-define1.0.out -getp test-use1.0.out +getp symbols-define-out.0.out +getp symbols-use-out.0.out diff --git a/tests/runtests/symbols.1/test.sh b/tests/runtests/symbols.1/test.sh index 66eaf99d3d..801f9c5c90 100644 --- a/tests/runtests/symbols.1/test.sh +++ b/tests/runtests/symbols.1/test.sh @@ -1,5 +1,3 @@ #!/bin/sh set -e -comp --install test_define1.comp -comp --install test_use1.comp MSGD_OPTS="--stderr" halrun dotest.hal diff --git a/tests/runtests/usercomp.0/checkresult b/tests/runtests/usercomp.0/checkresult index dfa8f42ae8..c193d5dbb8 100755 --- a/tests/runtests/usercomp.0/checkresult +++ b/tests/runtests/usercomp.0/checkresult @@ -1,2 +1,2 @@ #!/bin/sh -[ -x $(dirname $1)/rand ] +[ -x /tmp/rand ] diff --git a/tests/runtests/usercomp.0/test.sh b/tests/runtests/usercomp.0/test.sh index 1e79ecc8de..2e825325bf 100755 --- a/tests/runtests/usercomp.0/test.sh +++ b/tests/runtests/usercomp.0/test.sh @@ -1,2 +1,2 @@ #!/bin/sh -comp --compile rand.comp +comp -i /tmp ./rand.comp