diff --git a/OpenRGB.pro b/OpenRGB.pro index 98ba75b2..13f0b95d 100644 --- a/OpenRGB.pro +++ b/OpenRGB.pro @@ -1357,22 +1357,24 @@ unix:!macx { # ie. QMAKE_EXTRA_TARGETS += udev_rules # # PRE_TARGETDEPS += udev_rules # #-------------------------------------------------------------------------------------------# - udev_rules.CONFIG = no_check_exist - udev_rules.target = 60-openrgb.rules - udev_rules.path = $$PREFIX/lib/udev/rules.d/ - - exists($$udev_rules.target) { - message($$udev_rules.target " - UDEV rules file exists. Removing from build") - 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 # - #-------------------------------------------------------------------------------------------# - QMAKE_CXXFLAGS+=-save-temps - udev_rules.extra = $$PWD/scripts/build-udev-rules.sh $$PWD $$GIT_COMMIT_ID - udev_rules.files = $$OUT_PWD/60-openrgb.rules + CONFIG(release, debug|release) { + udev_rules.CONFIG = no_check_exist + udev_rules.target = 60-openrgb.rules + udev_rules.path = $$PREFIX/lib/udev/rules.d/ + + exists($$udev_rules.target) { + message($$udev_rules.target " - UDEV rules file exists. Removing from build") + 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 # + #-------------------------------------------------------------------------------------------# + QMAKE_CXXFLAGS+=-save-temps + udev_rules.extra = $$PWD/scripts/build-udev-rules.sh $$PWD $$GIT_COMMIT_ID + udev_rules.files = $$OUT_PWD/60-openrgb.rules + } } #-------------------------------------------------------------------------------------------# diff --git a/scripts/build-udev-rules.sh b/scripts/build-udev-rules.sh index 463ce03b..b22a5dab 100755 --- a/scripts/build-udev-rules.sh +++ b/scripts/build-udev-rules.sh @@ -78,8 +78,14 @@ do pid=${pid/0x/} device_name=${device_name//[^[:alnum:][:blank:]]/} - udev_line=$(printf 'SUBSYSTEMS=="%s|hidraw", ATTR{idVendor}=="%s", ATTR{idProduct}=="%s", TAG+="uaccess", TAG+="%s"\n' ${type,,} ${vid,,} ${pid,,} ${device_name// /_}) - echo -e "$udev_line" >>"$UDEV_FILE" + udev_line=$(printf 'SUBSYSTEMS=="%s|hidraw", ATTRS{idVendor}=="%s", ATTRS{idProduct}=="%s", TAG+="uaccess", TAG+="%s"\n' ${type,,} ${vid,,} ${pid,,} ${device_name// /_}) + + #Check to ensure that the vid and pid are not blank + if [[ $vid = "" || $pid = "" ]]; then + echo -e "Blank VID or PID Skipping: ${udev_line}" + else + echo -e "$udev_line" >>"$UDEV_FILE" + fi done <<< "$text" done <<< "$detectors" fi