diff --git a/CMakeLists.txt b/CMakeLists.txt index 9c1967e..0659533 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,14 +15,7 @@ if(NOT LIB_FSFW_NAME) message(ERROR "LIB_FSFW_NAME needs to be set as a linkable target") endif() -set_property(CACHE TGT_BSP PROPERTY STRINGS - arm/stm32h743zi-nucleo - arm/raspberrypi -) - -target_sources(${LIB_FSFW_HAL_NAME} PRIVATE - Dummy.cpp -) +add_subdirectory(common) if(FSFW_HAL_ADD_LINUX) add_subdirectory(${LINUX_HAL_PATH_NAME}) @@ -32,6 +25,6 @@ if(FSFW_HAL_ADD_STM32H7) add_subdirectory(${STM32H7_PATH_NAME}) endif() -target_link_libraries(${LIB_FSFW_HAL_NAME} +target_link_libraries(${LIB_FSFW_HAL_NAME} PRIVATE ${LIB_FSFW_NAME} ) diff --git a/Dummy.cpp b/Dummy.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt new file mode 100644 index 0000000..2369860 --- /dev/null +++ b/common/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(gpio) \ No newline at end of file diff --git a/common/gpio/CMakeLists.txt b/common/gpio/CMakeLists.txt new file mode 100644 index 0000000..9dbcdf9 --- /dev/null +++ b/common/gpio/CMakeLists.txt @@ -0,0 +1,3 @@ +target_sources(${LIB_FSFW_HAL_NAME} PRIVATE + GpioCookie.cpp +) \ No newline at end of file diff --git a/linux/GpioCookie.cpp b/common/gpio/GpioCookie.cpp similarity index 100% rename from linux/GpioCookie.cpp rename to common/gpio/GpioCookie.cpp diff --git a/linux/GpioCookie.h b/common/gpio/GpioCookie.h similarity index 100% rename from linux/GpioCookie.h rename to common/gpio/GpioCookie.h diff --git a/linux/GpioIF.h b/common/gpio/GpioIF.h similarity index 100% rename from linux/GpioIF.h rename to common/gpio/GpioIF.h diff --git a/linux/gpioDefinitions.h b/common/gpio/gpioDefinitions.h similarity index 100% rename from linux/gpioDefinitions.h rename to common/gpio/gpioDefinitions.h diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt index a2bfee1..88e3403 100644 --- a/linux/CMakeLists.txt +++ b/linux/CMakeLists.txt @@ -2,7 +2,4 @@ if(FSFW_HAL_ADD_RASPBERRY_PI) add_subdirectory(rpi) endif() -target_sources(${LIB_FSFW_HAL_NAME} PRIVATE - GpioCookie.cpp - LinuxLibgpioIF.cpp -) \ No newline at end of file +add_subdirectory(gpio) diff --git a/linux/gpio/CMakeLists.txt b/linux/gpio/CMakeLists.txt new file mode 100644 index 0000000..e9e7f04 --- /dev/null +++ b/linux/gpio/CMakeLists.txt @@ -0,0 +1,12 @@ +target_sources(${LIB_FSFW_HAL_NAME} PRIVATE + LinuxLibgpioIF.cpp +) + +# This abstraction layer requires the gpiod library. You can install this library +# with "sudo apt-get install -y libgpiod-dev". If you are cross-compiling, you need +# to install the package before syncing the sysroot to your host computer. +find_library(gpiod REQUIRED) + +target_link_libraries(${LIB_FSFW_HAL_NAME} PRIVATE + gpiod +) \ No newline at end of file diff --git a/linux/LinuxLibgpioIF.cpp b/linux/gpio/LinuxLibgpioIF.cpp similarity index 99% rename from linux/LinuxLibgpioIF.cpp rename to linux/gpio/LinuxLibgpioIF.cpp index 6adf35d..429863f 100644 --- a/linux/LinuxLibgpioIF.cpp +++ b/linux/gpio/LinuxLibgpioIF.cpp @@ -1,6 +1,6 @@ #include "LinuxLibgpioIF.h" -#include "GpioCookie.h" -#include "gpioDefinitions.h" +#include "../../common/gpio/GpioCookie.h" +#include "../../common/gpio/gpioDefinitions.h" #include diff --git a/linux/LinuxLibgpioIF.h b/linux/gpio/LinuxLibgpioIF.h similarity index 98% rename from linux/LinuxLibgpioIF.h rename to linux/gpio/LinuxLibgpioIF.h index 89f6153..7238056 100644 --- a/linux/LinuxLibgpioIF.h +++ b/linux/gpio/LinuxLibgpioIF.h @@ -1,7 +1,7 @@ #ifndef LINUX_GPIO_LINUXLIBGPIOIF_H_ #define LINUX_GPIO_LINUXLIBGPIOIF_H_ -#include "GpioIF.h" +#include "../../common/gpio/GpioIF.h" #include #include diff --git a/linux/rpi/GpioRPi.cpp b/linux/rpi/GpioRPi.cpp index daf16f2..68127cf 100644 --- a/linux/rpi/GpioRPi.cpp +++ b/linux/rpi/GpioRPi.cpp @@ -1,5 +1,5 @@ #include "GpioRPi.h" -#include "../GpioCookie.h" +#include "../../common/gpio/GpioCookie.h" #include #include diff --git a/linux/rpi/GpioRPi.h b/linux/rpi/GpioRPi.h index a2e30da..54917e6 100644 --- a/linux/rpi/GpioRPi.h +++ b/linux/rpi/GpioRPi.h @@ -2,7 +2,7 @@ #define BSP_RPI_GPIO_GPIORPI_H_ #include -#include "../gpioDefinitions.h" +#include "../../common/gpio/gpioDefinitions.h" class GpioCookie;