diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6180cb47..89ded00a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,7 +30,7 @@ jobs: run: find $RUNNER_WORKSPACE shell: bash - name: Run CMake with Ninja - uses: lukka/run-cmake@main + uses: lukka/run-cmake@v3 id: runcmake with: cmakeListsTxtPath: '${{ github.workspace }}/CMakeLists.txt' diff --git a/CMakeLists.txt b/CMakeLists.txt index ed3167a3..f2d60efb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -115,17 +115,15 @@ install(TARGETS headsetcontrol DESTINATION bin) # install udev files on linux if(UNIX AND NOT APPLE) - set (program_cmd headsetcontrol) - set (program_arg "-u") - set (program_output "/etc/udev/rules.d/70-headsets.rules") - install( CODE - " - execute_process(COMMAND ${program_cmd} ${program_arg} - OUTPUT_FILE ${program_output}) - - message(STATUS \"Installed udev rules to ${program_output}\") - " - ) + set(rules_file 70-headsets.rules) + add_custom_command( + OUTPUT ${rules_file} + COMMAND headsetcontrol -u > ${rules_file} + DEPENDS headsetcontrol) + add_custom_target(udevrules ALL DEPENDS ${rules_file}) + install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/${rules_file} + DESTINATION lib/udev/rules.d/) endif()