diff --git a/install_link.sh b/install_link.sh new file mode 100755 index 0000000..5c94bc7 --- /dev/null +++ b/install_link.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +test -e $MESON_INSTALL_DESTDIR_PREFIX/$2 && rm -f $MESON_INSTALL_DESTDIR_PREFIX/$2 +ln -s $1 $MESON_INSTALL_DESTDIR_PREFIX/$2 diff --git a/makerelease b/makerelease index 148e1bf..1267c39 100755 --- a/makerelease +++ b/makerelease @@ -34,12 +34,13 @@ esac version=$1 sed -i "/string version = /c\\\tstring version = \"$version\";" src/helpers/help.cpp +sed -i -E "s/(^\s*version :).*/\1 '$version',/" meson.build IFS='.' read -ra VPART <<< "$version" sed -i "/MAJOR=/cMAJOR=${VPART[0]}" makefile sed -i "/MINOR=/cMINOR=${VPART[1]}" makefile sed -i "/MICRO=/cMICRO=${VPART[2]}" makefile -git commit -m "Version $version" makefile src/* +git commit -m "Version $version" makefile meson.build src/* git push git checkout master diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..7159640 --- /dev/null +++ b/meson.build @@ -0,0 +1,109 @@ +# This file is part of g810-led. + +# g810-led is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, version 3 of the License. + +# g810-led is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with g810-led. If not, see . + +project( + 'g810-led', + 'cpp', + version : '0.4.1', + meson_version : '>= 0.52.0', + default_options : ['cpp_std=gnu++11'], +) + +extra_cpp_args = [] +if get_option('usb') == 'hidapi' + dep_usb = dependency('hidapi-hidraw') + extra_cpp_args = ['-Dhidapi'] +else + dep_usb = dependency('libusb-1.0') +endif + +add_project_arguments( + [ + '-DVERSION="@0@"'.format(meson.project_version()), + ], + language : 'cpp' +) + +libg810_led = library( + meson.project_name(), + [ + 'src/classes/Keyboard.cpp', + ], + cpp_args : extra_cpp_args, + version : meson.project_version(), + dependencies : [dep_usb], + install : true, +) + +pkg = import('pkgconfig') +pkg.generate( + libg810_led, + extra_cflags : extra_cpp_args, + description : 'library to control various logitech keyboard backlights', +) + +g810_ld = executable( + meson.project_name(), + [ + 'src/main.cpp', + 'src/helpers/help.cpp', + 'src/helpers/utils.cpp', + ], + link_with : libg810_led, + install : true, +) + +installed_name = get_option('prefix') / get_option('bindir') / meson.project_name() + +foreach name : ['g213-led', 'g410-led', 'g413-led', 'g512-led', 'g513-led', + 'g610-led', 'g815-led', 'g910-led', 'gpro-led'] + meson.add_install_script('install_link.sh', installed_name, + get_option('bindir') / name) +endforeach + +install_headers( + 'src/classes/Keyboard.h', + subdir : meson.project_name() +) + +install_data( + 'systemd/@0@-reboot.service'.format(meson.project_name()), + install_dir : get_option('prefix') / get_option('libdir') / 'systemd' / 'system', + install_mode : 'r--r--r--', +) + +install_data( + 'udev/@0@.rules'.format(meson.project_name()), + install_dir : get_option('sysconfdir') / 'udev' / 'rules.d', + install_mode : 'r--r--r--', +) + +install_data( + 'sample_profiles/all_blue', + 'sample_profiles/all_green', + 'sample_profiles/all_red', + 'sample_profiles/fx_breathing_red', + 'sample_profiles/fx_cwave', + 'sample_profiles/fx_hwave', + 'sample_profiles/group_keys', + 'sample_profiles/all_blue_fxl_breathing_red', + 'sample_profiles/all_off', + 'sample_profiles/colors', + 'sample_profiles/fx_color_green', + 'sample_profiles/fx_cycle', + 'sample_profiles/fx_vwave', + 'sample_profiles/keys_v_gradiant_fr_ch-latin1', + install_dir : get_option('sysconfdir') / meson.project_name() / 'samples', + install_mode : 'r--r--r--', +) diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 0000000..b710157 --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,21 @@ +# This file is part of g810-led. + +# g810-led is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, version 3 of the License. + +# g810-led is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with g810-led. If not, see . + +option( + 'usb', + type : 'combo', + choices : ['hidapi', 'libusb'], + value : 'hidapi', + description : 'Which USB implementation to use' +)