From aab18a797b03ecbd0d3980ed6f11404b7886c7f6 Mon Sep 17 00:00:00 2001 From: JC Luna Date: Mon, 23 Mar 2026 18:37:33 -0500 Subject: [PATCH 1/6] Init a CMakeLists.txt --- CMakeLists.txt | 37 +++++++++++++++++++++++++++++++++++++ cmake/FindEPOSCmd.cmake | 0 2 files changed, 37 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 cmake/FindEPOSCmd.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..a787618 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,37 @@ +cmake_minimum_required(VERSION 3.30..4.0) +project(libtestrig + LANGUAGES C) + +list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") + +set(LIB_DIR "${CMAKE_SOURCE_DIR}/lib") +set(IPC_DIR "${LIB_DIR}/ipc") +set(EPOS_DIR "${LIB_DIR}/epos2") + +set(IPC_SOURCES + "${IPC_DIR}/ipc.c" + "${IPC_DIR}/constants.c" + "${IPC_DIR}/message.c" + "${IPC_DIR}/os.c") + +set(EPOS_SOURCES + "${EPOS_DIR}/epos2.c" + "${EPOS_DIR}/connect.c" + "${EPOS_DIR}/definitions.c" + "${EPOS_DIR}/identify.c") + +set(LIBTESTRIG_SOURCES ${IPC_SOURCES}) + +find_package(EPOSCmd) +if (EPOSCmd_FOUND) + list(APPEND LIBTESTRIG_SOURCES ${EPOS_SOURCES}) +else() + message("Controller capabilities not being built.") +endif() + +add_library(Libtestrig SHARED ${LIBTESTRIG_SOURCES}) +target_include_directories(Libtestrig PUBLIC ${LIB_DIR}) + +if (EPOSCmd_FOUND) + target_link_libraries(Libtestrig PUBLIC EPOSCmd) +endif() diff --git a/cmake/FindEPOSCmd.cmake b/cmake/FindEPOSCmd.cmake new file mode 100644 index 0000000..e69de29 From 88c247b523fe79f3e443c7c3f447ef9a171668cf Mon Sep 17 00:00:00 2001 From: JC Luna Date: Mon, 23 Mar 2026 18:40:29 -0500 Subject: [PATCH 2/6] Build systems actions --- .github/workflows/build-cmake.yml | 55 +++++++++++++++++++ .../workflows/{build.yml => build-meson.yml} | 2 +- 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/build-cmake.yml rename .github/workflows/{build.yml => build-meson.yml} (98%) diff --git a/.github/workflows/build-cmake.yml b/.github/workflows/build-cmake.yml new file mode 100644 index 0000000..197dfe3 --- /dev/null +++ b/.github/workflows/build-cmake.yml @@ -0,0 +1,55 @@ +name: Build and Test with CMake + +on: + pull_request: + branches: ["main"] + paths: + - ".github/workflows/build.yml" + - "ipc/**/*.c" + - "ipc/**/*.h" + - "**/meson.build" + push: + branches: ["main"] + paths: + - ".github/workflows/build.yml" + - "ipc/**/*.c" + - "ipc/**/*.h" + - "**/meson.build" + +jobs: + linux-build-meson: + name: Linux + runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + compiler: ["gcc", "clang"] + steps: + - uses: actions/checkout@v5 + - name: Setup CMake + run: | + CC=${{ matrix.compiler }} cmake -S . -B build + - name: Build + run: | + CC=${{ matrix.compiler }} cmake --build build + + windows-build-meson: + name: Windows + runs-on: windows-latest + strategy: + fail-fast: true + matrix: + compiler: ["cl.exe", "gcc.exe"] + steps: + - uses: actions/checkout@v5 + - uses: ilammy/msvc-dev-cmd@v1.13.0 + - name: Setup CMake + run: | + cmake -S . -B build + env: + CC: ${{ matrix.compiler }} + - name: Build + run: | + cmake --build build + env: + CC: ${{ matrix.compiler }} diff --git a/.github/workflows/build.yml b/.github/workflows/build-meson.yml similarity index 98% rename from .github/workflows/build.yml rename to .github/workflows/build-meson.yml index 63addd2..1027a19 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build-meson.yml @@ -1,4 +1,4 @@ -name: Build and Test +name: Build and Test with Meson on: pull_request: From 4407907846aa415cd8ca18ab00cb785d00724153 Mon Sep 17 00:00:00 2001 From: JC Luna Date: Mon, 23 Mar 2026 18:45:34 -0500 Subject: [PATCH 3/6] CI Action to target proper files --- .github/workflows/build-cmake.yml | 14 ++++++++------ .github/workflows/build-meson.yml | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-cmake.yml b/.github/workflows/build-cmake.yml index 197dfe3..5ef83cd 100644 --- a/.github/workflows/build-cmake.yml +++ b/.github/workflows/build-cmake.yml @@ -4,20 +4,22 @@ on: pull_request: branches: ["main"] paths: - - ".github/workflows/build.yml" + - ".github/workflows/build-cmake.yml" - "ipc/**/*.c" - "ipc/**/*.h" - - "**/meson.build" + - "**/CMakeLists.txt" + - "cmake/*.cmake" push: branches: ["main"] paths: - - ".github/workflows/build.yml" + - ".github/workflows/build-cmake.yml" - "ipc/**/*.c" - "ipc/**/*.h" - - "**/meson.build" + - "**/CMakeLists.txt" + - "cmake/*.cmake" jobs: - linux-build-meson: + linux-build-cmake: name: Linux runs-on: ubuntu-latest strategy: @@ -33,7 +35,7 @@ jobs: run: | CC=${{ matrix.compiler }} cmake --build build - windows-build-meson: + windows-build-cmake: name: Windows runs-on: windows-latest strategy: diff --git a/.github/workflows/build-meson.yml b/.github/workflows/build-meson.yml index 1027a19..effcfc6 100644 --- a/.github/workflows/build-meson.yml +++ b/.github/workflows/build-meson.yml @@ -4,14 +4,14 @@ on: pull_request: branches: ["main"] paths: - - ".github/workflows/build.yml" + - ".github/workflows/build-meson.yml" - "ipc/**/*.c" - "ipc/**/*.h" - "**/meson.build" push: branches: ["main"] paths: - - ".github/workflows/build.yml" + - ".github/workflows/build-meson.yml" - "ipc/**/*.c" - "ipc/**/*.h" - "**/meson.build" From 7c039b2eb3a67a8e4651705691ee9551d4172971 Mon Sep 17 00:00:00 2001 From: JC Luna Date: Mon, 23 Mar 2026 18:47:07 -0500 Subject: [PATCH 4/6] Less verbose action names --- .github/workflows/build-cmake.yml | 2 +- .github/workflows/build-meson.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-cmake.yml b/.github/workflows/build-cmake.yml index 5ef83cd..82ac45d 100644 --- a/.github/workflows/build-cmake.yml +++ b/.github/workflows/build-cmake.yml @@ -1,4 +1,4 @@ -name: Build and Test with CMake +name: CMake on: pull_request: diff --git a/.github/workflows/build-meson.yml b/.github/workflows/build-meson.yml index effcfc6..9247b4a 100644 --- a/.github/workflows/build-meson.yml +++ b/.github/workflows/build-meson.yml @@ -1,4 +1,4 @@ -name: Build and Test with Meson +name: Meson on: pull_request: From 9781ce425755f016e7f0ef78505d7941c288a80e Mon Sep 17 00:00:00 2001 From: JC Luna Date: Mon, 23 Mar 2026 18:48:46 -0500 Subject: [PATCH 5/6] DLL compile define in CMake --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index a787618..4464302 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,7 @@ else() endif() add_library(Libtestrig SHARED ${LIBTESTRIG_SOURCES}) +target_compile_definitions(Libtestrig PRIVATE COMPILING_TESTRIG_DLL) target_include_directories(Libtestrig PUBLIC ${LIB_DIR}) if (EPOSCmd_FOUND) From de504bab13093dacb97296b7bea692eaf8d6bf18 Mon Sep 17 00:00:00 2001 From: JC Luna Date: Mon, 23 Mar 2026 19:03:36 -0500 Subject: [PATCH 6/6] Link to windows lib --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4464302..a03d4cd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,10 @@ add_library(Libtestrig SHARED ${LIBTESTRIG_SOURCES}) target_compile_definitions(Libtestrig PRIVATE COMPILING_TESTRIG_DLL) target_include_directories(Libtestrig PUBLIC ${LIB_DIR}) +if (WIN32) + target_link_libraries(Libtestrig PRIVATE Ws2_32) +endif() + if (EPOSCmd_FOUND) target_link_libraries(Libtestrig PUBLIC EPOSCmd) endif()