From 10295a19fc2c9de627b3cea02c93ddd595343030 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Tue, 3 Jun 2025 17:52:14 -0500 Subject: [PATCH] More progress on getting CMake build on Linux --- CMakeLists.txt | 53 +++++++++++++++++-- .../PhilipsHueController.h | 2 +- .../PhilipsHueControllerDetect.cpp | 8 +-- .../PhilipsHueEntertainmentController.h | 6 +-- 4 files changed, 57 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ea357574..0326f4e1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -161,10 +161,17 @@ target_sources(OpenRGB PRIVATE ${CONTROLLER_CPP} ) target_include_directories(OpenRGB PRIVATE ${CONTROLLER_INC}) target_include_directories(OpenRGB PRIVATE ${CMAKE_SOURCE_DIR}/AutoStart) + target_include_directories(OpenRGB PRIVATE ${CMAKE_SOURCE_DIR}/dmiinfo) +target_sources(OpenRGB PRIVATE ${CMAKE_SOURCE_DIR}/dmiinfo/dmiinfo.cpp) + target_include_directories(OpenRGB PRIVATE ${CMAKE_SOURCE_DIR}/hidapi_wrapper) + target_include_directories(OpenRGB PRIVATE ${CMAKE_SOURCE_DIR}/i2c_smbus) + target_include_directories(OpenRGB PRIVATE ${CMAKE_SOURCE_DIR}/i2c_tools) +target_sources(OpenRGB PRIVATE ${CMAKE_SOURCE_DIR}/i2c_tools/i2c_tools.cpp) + target_include_directories(OpenRGB PRIVATE ${CMAKE_SOURCE_DIR}/interop) target_include_directories(OpenRGB PRIVATE ${CMAKE_SOURCE_DIR}/KeyboardLayoutManager) target_include_directories(OpenRGB PRIVATE ${CMAKE_SOURCE_DIR}/net_port) @@ -178,12 +185,43 @@ target_include_directories(OpenRGB PRIVATE ${CMAKE_SOURCE_DIR}/super_io) target_include_directories(OpenRGB PRIVATE ${CMAKE_SOURCE_DIR}/SuspendResume) target_include_directories(OpenRGB PRIVATE ${CMAKE_SOURCE_DIR}/wmi) +#-----------------------------------------------------------# +# CRCpp # +#-----------------------------------------------------------# +set(CRCPP_DIR ${CMAKE_SOURCE_DIR}/dependencies/CRCpp) + +add_library(CRCpp INTERFACE) +target_include_directories(CRCpp INTERFACE ${CRCPP_DIR}/) + +target_link_libraries(OpenRGB CRCpp) + #-----------------------------------------------------------# # hidapi # #-----------------------------------------------------------# find_package(hidapi REQUIRED) target_link_libraries(OpenRGB hidapi::hidapi) +#-----------------------------------------------------------# +# httplib # +#-----------------------------------------------------------# +set(HTTPLIB_DIR ${CMAKE_SOURCE_DIR}/dependencies/httplib) + +add_library(httplib INTERFACE) +target_include_directories(httplib INTERFACE ${HTTPLIB_DIR}/) + +target_link_libraries(OpenRGB httplib) + +#-----------------------------------------------------------# +# libe131 # +#-----------------------------------------------------------# +set(LIBE131_DIR ${CMAKE_SOURCE_DIR}/dependencies/libe131) + +add_library(libe131 STATIC) +target_include_directories(libe131 PUBLIC ${LIBE131_DIR}/src) +target_sources(libe131 PRIVATE ${LIBE131_DIR}/src/e131.c) + +target_link_libraries(OpenRGB libe131) + #-----------------------------------------------------------# # libusb # #-----------------------------------------------------------# @@ -192,7 +230,14 @@ pkg_check_modules(libusb-1.0 REQUIRED IMPORTED_TARGET GLOBAL libusb-1.0) target_link_libraries(OpenRGB PkgConfig::libusb-1.0) -target_include_directories(OpenRGB PRIVATE ${CMAKE_SOURCE_DIR}/dependencies/CRCpp) -target_include_directories(OpenRGB PRIVATE ${CMAKE_SOURCE_DIR}/dependencies/libe131/src) -target_include_directories(OpenRGB PRIVATE ${CMAKE_SOURCE_DIR}/dependencies/httplib) -target_include_directories(OpenRGB PRIVATE ${CMAKE_SOURCE_DIR}/dependencies/json/nlohmann) +#-----------------------------------------------------------# +# hueplusplus # +#-----------------------------------------------------------# +add_subdirectory(${CMAKE_SOURCE_DIR}/dependencies/hueplusplus-1.2.0) +target_link_libraries(OpenRGB hueplusplusstatic) + +#-----------------------------------------------------------# +# nlohmann_json # +#-----------------------------------------------------------# +find_package(nlohmann_json REQUIRED) +target_link_libraries(OpenRGB nlohmann_json) diff --git a/Controllers/PhilipsHueController/PhilipsHueController.h b/Controllers/PhilipsHueController/PhilipsHueController.h index f94b15b8..cfe2a9d0 100644 --- a/Controllers/PhilipsHueController/PhilipsHueController.h +++ b/Controllers/PhilipsHueController/PhilipsHueController.h @@ -13,7 +13,7 @@ #include #include -#include "HueDeviceTypes.h" +#include "hueplusplus/HueDeviceTypes.h" class PhilipsHueController { diff --git a/Controllers/PhilipsHueController/PhilipsHueControllerDetect.cpp b/Controllers/PhilipsHueController/PhilipsHueControllerDetect.cpp index 2c946239..5b7ab5bf 100644 --- a/Controllers/PhilipsHueController/PhilipsHueControllerDetect.cpp +++ b/Controllers/PhilipsHueController/PhilipsHueControllerDetect.cpp @@ -9,13 +9,13 @@ | SPDX-License-Identifier: GPL-2.0-only | \*---------------------------------------------------------*/ -#include "Bridge.h" -#include "HueDeviceTypes.h" +#include "hueplusplus/Bridge.h" +#include "hueplusplus/HueDeviceTypes.h" #ifdef _WIN32 -#include "WinHttpHandler.h" +#include "hueplusplus/WinHttpHandler.h" #else -#include "LinHttpHandler.h" +#include "hueplusplus/LinHttpHandler.h" #endif #include "Detector.h" diff --git a/Controllers/PhilipsHueController/PhilipsHueEntertainmentController.h b/Controllers/PhilipsHueController/PhilipsHueEntertainmentController.h index bf459686..0f88fa09 100644 --- a/Controllers/PhilipsHueController/PhilipsHueEntertainmentController.h +++ b/Controllers/PhilipsHueController/PhilipsHueEntertainmentController.h @@ -13,9 +13,9 @@ #include #include -#include "Bridge.h" -#include "EntertainmentMode.h" -#include "Group.h" +#include "hueplusplus/Bridge.h" +#include "hueplusplus/EntertainmentMode.h" +#include "hueplusplus/Group.h" #include "RGBController.h" #define HUE_ENTERTAINMENT_HEADER_SIZE 16