Allow multiple operating systems to be specified in filename, i.e. _Windows_Linux.cpp

This commit is contained in:
Adam Honse 2024-08-09 00:05:03 -05:00
parent c35fd68c99
commit d778d470b1
2 changed files with 48 additions and 35 deletions

View file

@ -72,12 +72,29 @@ for(iter, $$list($$CONTROLLER_H)) {
}
CONTROLLER_INCLUDES = $$unique(CONTROLLER_INCLUDES)
CONTROLLER_H_WINDOWS = $$files("Controllers/*_Windows.h", true)
CONTROLLER_CPP_WINDOWS = $$files("Controllers/*_Windows.cpp", true)
CONTROLLER_H_LINUX = $$files("Controllers/*_Linux.h", true)
CONTROLLER_CPP_LINUX = $$files("Controllers/*_Linux.cpp", true)
CONTROLLER_H_MACOS = $$files("Controllers/*_MacOS.cpp", true)
CONTROLLER_CPP_MACOS = $$files("Controllers/*_MacOS.cpp", true)
#-----------------------------------------------------------------------------------------------#
# Remove OS-specific files from the overall controller headers and sources lists #
# The suffixes _Windows, _Linux, _FreeBSD, and _MacOS are usable to denote that a file only #
# applies to one or more OSes. The suffixes may be combined such as <file>_Windows_Linux.cpp. #
#-----------------------------------------------------------------------------------------------#
CONTROLLER_H_WINDOWS = $$files("Controllers/*_Windows*.h", true)
CONTROLLER_CPP_WINDOWS = $$files("Controllers/*_Windows*.cpp", true)
CONTROLLER_H_LINUX = $$files("Controllers/*_Linux*.h", true)
CONTROLLER_CPP_LINUX = $$files("Controllers/*_Linux*.cpp", true)
CONTROLLER_H_FREEBSD = $$files("Controllers/*_FreeBSD*.h", true)
CONTROLLER_CPP_FREEBSD = $$files("Controllers/*_FreeBSD*.cpp", true)
CONTROLLER_H_MACOS = $$files("Controllers/*_MacOS*.h", true)
CONTROLLER_CPP_MACOS = $$files("Controllers/*_MacOS*.cpp", true)
CONTROLLER_H -= $$CONTROLLER_H_WINDOWS
CONTROLLER_H -= $$CONTROLLER_H_LINUX
CONTROLLER_H -= $$CONTROLLER_H_FREEBSD
CONTROLLER_H -= $$CONTROLLER_H_MACOS
CONTROLLER_CPP -= $$CONTROLLER_CPP_WINDOWS
CONTROLLER_CPP -= $$CONTROLLER_CPP_LINUX
CONTROLLER_CPP -= $$CONTROLLER_CPP_FREEBSD
CONTROLLER_CPP -= $$CONTROLLER_CPP_MACOS
#-----------------------------------------------------------------------------------------------#
# OpenRGB Common #
@ -246,8 +263,7 @@ win32:INCLUDEPATH +=
dependencies/NVFC \
wmi/ \
win32:SOURCES -= $$CONTROLLER_CPP_LINUX
win32:SOURCES -= $$CONTROLLER_CPP_MACOS
win32:SOURCES += $$CONTROLLER_CPP_WINDOWS
win32:SOURCES += \
dependencies/hueplusplus-1.1.0/src/WinHttpHandler.cpp \
@ -358,8 +374,7 @@ win32:SOURCES +=
wmi/wmi.cpp \
AutoStart/AutoStart-Windows.cpp \
win32:HEADERS -= $$CONTROLLER_H_LINUX
win32:HEADERS -= $$CONTROLLER_H_MACOS
win32:HEADERS += $$CONTROLLER_H_WINDOWS
win32:HEADERS += \
dependencies/display-library/include/adl_defines.h \
@ -461,8 +476,7 @@ contains(QMAKE_PLATFORM, linux) {
TARGET = $$lower($$TARGET)
HEADERS -= $$CONTROLLER_H_WINDOWS
HEADERS -= $$CONTROLLER_H_MACOS
HEADERS += $$CONTROLLER_H_LINUX
HEADERS += \
i2c_smbus/i2c_smbus_linux.h \
@ -510,8 +524,7 @@ contains(QMAKE_PLATFORM, linux) {
}
}
SOURCES -= $$CONTROLLER_CPP_WINDOWS
SOURCES -= $$CONTROLLER_CPP_MACOS
SOURCES += $$CONTROLLER_CPP_LINUX
SOURCES += \
dependencies/hueplusplus-1.1.0/src/LinHttpHandler.cpp \
@ -546,10 +559,10 @@ contains(QMAKE_PLATFORM, linux) {
udev_rules.files = $$udev_rules.target
} else {
message($$udev_rules.target " - UDEV rules file missing. Adding script to build")
#-------------------------------------------------------------------------------------------#
# This is a compiler config flag to save the preproccessed .ii & .s #
# files so as to automatically process the UDEV rules and the Supported Devices #
#-------------------------------------------------------------------------------------------#
#-----------------------------------------------------------------------------------#
# This is a compiler config flag to save the preproccessed .ii & .s #
# files so as to automatically process the UDEV rules and the Supported Devices #
#-----------------------------------------------------------------------------------#
QMAKE_CXXFLAGS+=-save-temps
QMAKE_CXXFLAGS-=-pipe
udev_rules.extra = $$PWD/scripts/build-udev-rules.sh $$PWD $$GIT_COMMIT_ID
@ -558,7 +571,7 @@ contains(QMAKE_PLATFORM, linux) {
}
#-------------------------------------------------------------------------------------------#
# Add static files to installation #
# Add static files to installation #
#-------------------------------------------------------------------------------------------#
target.path=$$PREFIX/bin/
desktop.path=$$PREFIX/share/applications/
@ -581,6 +594,8 @@ contains(QMAKE_PLATFORM, freebsd) {
TARGET = $$lower($$TARGET)
HEADERS += $$CONTROLLER_H_FREEBSD
HEADERS += \
AutoStart/AutoStart-FreeBSD.h \
@ -622,6 +637,8 @@ contains(QMAKE_PLATFORM, freebsd) {
}
}
SOURCES += $$CONTROLLER_CPP_FREEBSD
SOURCES += \
dependencies/hueplusplus-1.1.0/src/LinHttpHandler.cpp \
serial_port/find_usb_serial_port_linux.cpp \
@ -633,7 +650,6 @@ contains(QMAKE_PLATFORM, freebsd) {
Controllers/SeagateController/SeagateControllerDetect.cpp \
Controllers/ENESMBusController/ROGArionDetect.cpp \
Controllers/ENESMBusController/ENESMBusInterface/ENESMBusInterface_ROGArion.cpp \
$$CONTROLLER_CPP_WINDOWS \
#-------------------------------------------------------------------------------------------#
# Set up install paths #
@ -667,9 +683,9 @@ unix:!macx:CONFIG(asan) {
#-----------------------------------------------------------------------------------------------#
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.15
#-------------------------------------------------------------------------------------------#
# Common MacOS definitions #
#-------------------------------------------------------------------------------------------#
#-----------------------------------------------------------------------------------------------#
# Common MacOS definitions #
#-----------------------------------------------------------------------------------------------#
macx {
CONFIG += link_pkgconfig
@ -687,8 +703,7 @@ macx {
AutoStart/AutoStart-MacOS.h \
qt/macutils.h \
HEADERS -= $$CONTROLLER_H_WINDOWS
HEADERS -= $$CONTROLLER_H_LINUX
HEADERS += $$CONTROLLER_H_MACOS
SOURCES += \
dependencies/hueplusplus-1.1.0/src/LinHttpHandler.cpp \
@ -696,8 +711,7 @@ macx {
AutoStart/AutoStart-MacOS.cpp \
qt/macutils.mm \
SOURCES -= $$CONTROLLER_CPP_WINDOWS
SOURCES -= $$CONTROLLER_CPP_LINUX
SOURCES += $$CONTROLLER_CPP_MACOS
# Use mbedtls v2 instead of latest
MBEDTLS_PREFIX = $$system(brew --prefix mbedtls@2)
@ -719,9 +733,9 @@ macx {
QMAKE_INFO_PLIST = $$OUT_PWD/Info.plist
}
#-------------------------------------------------------------------------------------------#
# Apple Silicon (arm64) Homebrew installs at /opt/homebrew #
#-------------------------------------------------------------------------------------------#
#-----------------------------------------------------------------------------------------------#
# Apple Silicon (arm64) Homebrew installs at /opt/homebrew #
#-----------------------------------------------------------------------------------------------#
macx:contains(QMAKE_HOST.arch, arm64) {
INCLUDEPATH += \
/opt/homebrew/include \
@ -733,9 +747,9 @@ macx:contains(QMAKE_HOST.arch, arm64) {
-L/opt/homebrew/lib \
}
#-------------------------------------------------------------------------------------------#
# Intel (x86_64) Homebrew installs at /usr/local/lib #
#-------------------------------------------------------------------------------------------#
#-----------------------------------------------------------------------------------------------#
# Intel (x86_64) Homebrew installs at /usr/local/lib #
#-----------------------------------------------------------------------------------------------#
macx:contains(QMAKE_HOST.arch, x86_64) {
INCLUDEPATH += \
dependencies/macUSPCIO \

View file

@ -6,8 +6,7 @@
- TARGET = $$lower($$TARGET)
-
HEADERS -= $$CONTROLLER_H_WINDOWS
HEADERS -= $$CONTROLLER_H_MACOS
HEADERS += $$CONTROLLER_H_LINUX
HEADERS += \
--- a/qt/org.openrgb.OpenRGB.desktop