Electronicks / JoyShockMapper

A tool for PC gamers to play games with DualShock 4s, JoyCons, and Pro Controllers. Gyro aiming, flick stick.
Other
329 stars 20 forks source link

[Build Error] Cannot Compile For Arch Linux #108

Open Jazztache opened 9 months ago

Jazztache commented 9 months ago

Hello! I have been trying to compile JoyShockMapper from source, since the AUR build hasn't been working. I think this might be an upstream issue, so I went to check.

I used git clone on the source code, and then followed the build instructions in the README.md. It doesn't seem to work unfortunely.

Here is the console output I was able to get.

jazztache@jazztarche-revengance ~/S/J/build (master)> cmake .. -DCMAKE_CXX_COMPILE=clang++ && cmake --build .
-- JSM version is v3.5.1
-- CPM: adding package SDL2@ (release-2.28.2)
-- dynamic libasound -> libasound.so.2
-- dynamic libjack -> libjack.so.0
-- dynamic libpipewire-0.3 -> libpipewire-0.3.so.0
-- dynamic libpulse-simple -> libpulse-simple.so.0
-- Checking for module 'esound'
--   Package 'esound', required by 'virtual:world', not found
-- dynamic libsndio -> libsndio.so.7
-- Checking for modules 'bcm_host;brcmegl'
--   Package 'bcm_host', required by 'virtual:world', not found
--   Package 'brcmegl', required by 'virtual:world', not found
-- dynamic libX11 -> libX11.so.6
-- dynamic libXext -> libXext.so.6
-- dynamic libXcursor -> libXcursor.so.1
-- dynamic libXi -> libXi.so.6
-- dynamic libXfixes -> libXfixes.so.3
-- dynamic libXrandr -> libXrandr.so.2
-- dynamic libXrender -> libXrender.so.1
-- dynamic libXss -> libXss.so.1
-- dynamic libdrm -> libdrm.so.2
-- dynamic libgbm -> libgbm.so.1
-- dynamic libwayland-client -> libwayland-client.so.0
-- dynamic libwayland-egl -> libwayland-egl.so.1
-- dynamic libwayland-cursor -> libwayland-cursor.so.0
-- dynamic libxkbcommon -> libxkbcommon.so.0
-- dynamic libdecor-0 -> libdecor-0.so.0
-- dynamic libudev -> libudev.so.1
-- Checking for one of the modules 'ibus-1.0;ibus'
CMake Deprecation Warning at build/_deps/sdl2-src/CMakeLists.txt:3185 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- 
-- SDL2 was configured with the following options:
-- 
-- Platform: Linux-6.5.3-arch1-1
-- 64-bit:   TRUE
-- Compiler: /usr/bin/cc
-- Revision: SDL-release-2.28.2-0-g031912c4b
-- 
-- Subsystems:
--   Atomic:    ON
--   Audio:     ON
--   Video:     ON
--   Render:    ON
--   Events:    ON
--   Joystick:  ON
--   Haptic:    ON
--   Hidapi:    ON
--   Power:     ON
--   Threads:   ON
--   Timers:    ON
--   File:      ON
--   Loadso:    ON
--   CPUinfo:   ON
--   Filesystem:        ON
--   Sensor:    ON
--   Locale:    ON
--   Misc:      ON
-- 
-- Options:
--   SDL2_DISABLE_INSTALL        (Wanted: ON): OFF
--   SDL2_DISABLE_SDL2MAIN       (Wanted: OFF): OFF
--   SDL2_DISABLE_UNINSTALL      (Wanted: OFF): OFF
--   SDL_3DNOW                   (Wanted: ON): ON
--   SDL_ALSA                    (Wanted: ON): ON
--   SDL_ALSA_SHARED             (Wanted: ON): ON
--   SDL_ALTIVEC                 (Wanted: ON): OFF
--   SDL_ARMNEON                 (Wanted: OFF): OFF
--   SDL_ARMSIMD                 (Wanted: OFF): OFF
--   SDL_ARTS                    (Wanted: ON): OFF
--   SDL_ARTS_SHARED             (Wanted: ON): OFF
--   SDL_ASAN                    (Wanted: OFF): OFF
--   SDL_ASSEMBLY                (Wanted: ON): ON
--   SDL_ASSERTIONS              (Wanted: auto): auto
--   SDL_BACKGROUNDING_SIGNAL    (Wanted: OFF): OFF
--   SDL_CCACHE                  (Wanted: ON): ON
--   SDL_CLOCK_GETTIME           (Wanted: ON): ON
--   SDL_COCOA                   (Wanted: OFF): OFF
--   SDL_DBUS                    (Wanted: ON): ON
--   SDL_DIRECTFB                (Wanted: OFF): OFF
--   SDL_DIRECTFB_SHARED         (Wanted: OFF): OFF
--   SDL_DIRECTX                 (Wanted: OFF): OFF
--   SDL_DISKAUDIO               (Wanted: ON): ON
--   SDL_DUMMYAUDIO              (Wanted: ON): ON
--   SDL_DUMMYVIDEO              (Wanted: ON): ON
--   SDL_ESD                     (Wanted: ON): OFF
--   SDL_ESD_SHARED              (Wanted: ON): OFF
--   SDL_FOREGROUNDING_SIGNAL    (Wanted: OFF): OFF
--   SDL_FUSIONSOUND             (Wanted: OFF): OFF
--   SDL_FUSIONSOUND_SHARED      (Wanted: OFF): OFF
--   SDL_GCC_ATOMICS             (Wanted: ON): ON
--   SDL_HIDAPI                  (Wanted: ON): ON
--   SDL_HIDAPI_JOYSTICK         (Wanted: ON): ON
--   SDL_HIDAPI_LIBUSB           (Wanted: OFF): OFF
--   SDL_IBUS                    (Wanted: ON): OFF
--   SDL_INSTALL_TESTS           (Wanted: OFF): OFF
--   SDL_JACK                    (Wanted: ON): ON
--   SDL_JACK_SHARED             (Wanted: ON): ON
--   SDL_KMSDRM                  (Wanted: ON): ON
--   SDL_KMSDRM_SHARED           (Wanted: ON): ON
--   SDL_LASX                    (Wanted: OFF): OFF
--   SDL_LIBC                    (Wanted: ON): ON
--   SDL_LIBSAMPLERATE           (Wanted: ON): ON
--   SDL_LIBSAMPLERATE_SHARED    (Wanted: ON): ON
--   SDL_LIBUDEV                 (Wanted: ON): OFF
--   SDL_LSX                     (Wanted: OFF): OFF
--   SDL_METAL                   (Wanted: OFF): OFF
--   SDL_MMX                     (Wanted: ON): ON
--   SDL_NAS                     (Wanted: ON): OFF
--   SDL_NAS_SHARED              (Wanted: ON): OFF
--   SDL_OFFSCREEN               (Wanted: ON): ON
--   SDL_OPENGL                  (Wanted: ON): ON
--   SDL_OPENGLES                (Wanted: ON): ON
--   SDL_OSS                     (Wanted: ON): ON
--   SDL_PIPEWIRE                (Wanted: ON): ON
--   SDL_PIPEWIRE_SHARED         (Wanted: ON): ON
--   SDL_PTHREADS                (Wanted: ON): ON
--   SDL_PTHREADS_SEM            (Wanted: ON): ON
--   SDL_PULSEAUDIO              (Wanted: ON): ON
--   SDL_PULSEAUDIO_SHARED       (Wanted: ON): ON
--   SDL_RENDER_D3D              (Wanted: OFF): OFF
--   SDL_RENDER_METAL            (Wanted: OFF): OFF
--   SDL_RPATH                   (Wanted: ON): ON
--   SDL_RPI                     (Wanted: ON): OFF
--   SDL_SNDIO                   (Wanted: ON): ON
--   SDL_SNDIO_SHARED            (Wanted: ON): ON
--   SDL_SSE                     (Wanted: ON): ON
--   SDL_SSE2                    (Wanted: ON): ON
--   SDL_SSE3                    (Wanted: ON): ON
--   SDL_SSEMATH                 (Wanted: ON): ON
--   SDL_STATIC_PIC              (Wanted: OFF): OFF
--   SDL_SYSTEM_ICONV            (Wanted: ON): ON
--   SDL_TESTS                   (Wanted: OFF): OFF
--   SDL_VENDOR_INFO             (Wanted: ): OFF
--   SDL_VIRTUAL_JOYSTICK        (Wanted: ON): ON
--   SDL_VIVANTE                 (Wanted: ON): OFF
--   SDL_VULKAN                  (Wanted: ON): ON
--   SDL_WASAPI                  (Wanted: OFF): OFF
--   SDL_WAYLAND                 (Wanted: ON): ON
--   SDL_WAYLAND_LIBDECOR        (Wanted: ON): ON
--   SDL_WAYLAND_LIBDECOR_SHARED (Wanted: ON): ON
--   SDL_WAYLAND_QT_TOUCH        (Wanted: ON): ON
--   SDL_WAYLAND_SHARED          (Wanted: ON): ON
--   SDL_X11                     (Wanted: ON): ON
--   SDL_X11_SHARED              (Wanted: ON): ON
--   SDL_X11_XCURSOR             (Wanted: ON): ON
--   SDL_X11_XDBE                (Wanted: ON): ON
--   SDL_X11_XFIXES              (Wanted: ON): ON
--   SDL_X11_XINPUT              (Wanted: ON): ON
--   SDL_X11_XRANDR              (Wanted: ON): ON
--   SDL_X11_XSCRNSAVER          (Wanted: ON): ON
--   SDL_X11_XSHAPE              (Wanted: ON): ON
--   SDL_XINPUT                  (Wanted: OFF): OFF
-- 
--  CFLAGS:         -idirafter "/home/jazztache/Source/JoyShockMapper/build/_deps/sdl2-src/src/video/khronos" -DHAVE_LINUX_VERSION_H
--  EXTRA_CFLAGS:   -Wall -fno-strict-aliasing -Wdeclaration-after-statement -fvisibility=hidden -Wshadow -Wno-unused-local-typedefs -mmmx -m3dnow -msse -msse2 -msse3 -D_REENTRANT -I/usr/include/pipewire-0.3 -I/usr/include/spa-0.2 -I/usr/include -I/usr/include/libdrm
--  EXTRA_LDFLAGS: -pthread -Wl,--no-undefined
--  EXTRA_LIBS:    m
-- 
--  Build Shared Library: ON
--  Build Static Library: ON
--  Build Static Library with Position Independent Code: OFF
-- 
-- If something was not detected, although the libraries
-- were installed, then make sure you have set the
-- CFLAGS and LDFLAGS environment variables correctly.
-- 
-- CPM: adding package magic_enum@0 (47e34ada93e0bf70dcea551636755cd66d893768)
-- CPM: adding package pocket_fsm@0 (e447ec24c7a547bd1fbe8d964baa866a9cf146c8)
-- CPM: adding package GamepadMotionHelpers@0 (39b578aacf34c3a1c584d8f7f194adc776f88055)
-- Configuring done (0.9s)
-- Generating done (0.0s)
-- Build files have been written to: /home/jazztache/Source/JoyShockMapper/build
[ 14%] Built target sdl_headers_copy
[ 54%] Built target SDL2
[ 54%] Building CXX object JoyShockMapper/CMakeFiles/JoyShockMapper.dir/src/main.cpp.o
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:412:18: error: explicit specialization in non-namespace scope ‘class JoyShock’
  412 |         template<>
      |                  ^
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:413:17: error: template-id ‘getSetting<FloatXY>’ in declaration of primary template
  413 |         FloatXY getSetting<FloatXY>(SettingID index)
      |                 ^~~~~~~~~~~~~~~~~~~
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:413:17: error: ‘FloatXY JoyShock::getSetting(SettingID)’ cannot be overloaded with ‘float JoyShock::getSetting(SettingID)’
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:378:15: note: previous declaration ‘float JoyShock::getSetting(SettingID)’
  378 |         float getSetting(SettingID index)
      |               ^~~~~~~~~~
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:428:18: error: explicit specialization in non-namespace scope ‘class JoyShock’
  428 |         template<>
      |                  ^
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:429:22: error: template-id ‘getSetting<GyroSettings>’ in declaration of primary template
  429 |         GyroSettings getSetting<GyroSettings>(SettingID index)
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:429:22: error: ‘GyroSettings JoyShock::getSetting(SettingID)’ cannot be overloaded with ‘float JoyShock::getSetting(SettingID)’
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:378:15: note: previous declaration ‘float JoyShock::getSetting(SettingID)’
  378 |         float getSetting(SettingID index)
      |               ^~~~~~~~~~
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:446:18: error: explicit specialization in non-namespace scope ‘class JoyShock’
  446 |         template<>
      |                  ^
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:447:15: error: template-id ‘getSetting<Color>’ in declaration of primary template
  447 |         Color getSetting<Color>(SettingID index)
      |               ^~~~~~~~~~~~~~~~~
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:447:15: error: ‘Color JoyShock::getSetting(SettingID)’ cannot be overloaded with ‘float JoyShock::getSetting(SettingID)’
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:378:15: note: previous declaration ‘float JoyShock::getSetting(SettingID)’
  378 |         float getSetting(SettingID index)
      |               ^~~~~~~~~~
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:464:18: error: explicit specialization in non-namespace scope ‘class JoyShock’
  464 |         template<>
      |                  ^
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:465:32: error: template-id ‘getSetting<AdaptiveTriggerSetting>’ in declaration of primary template
  465 |         AdaptiveTriggerSetting getSetting<AdaptiveTriggerSetting>(SettingID index)
      |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:465:32: error: ‘AdaptiveTriggerSetting JoyShock::getSetting(SettingID)’ cannot be overloaded with ‘float JoyShock::getSetting(SettingID)’
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:378:15: note: previous declaration ‘float JoyShock::getSetting(SettingID)’
  378 |         float getSetting(SettingID index)
      |               ^~~~~~~~~~
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:479:18: error: explicit specialization in non-namespace scope ‘class JoyShock’
  479 |         template<>
      |                  ^
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:480:22: error: template-id ‘getSetting<AxisSignPair>’ in declaration of primary template
  480 |         AxisSignPair getSetting<AxisSignPair>(SettingID index)
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:480:22: error: ‘AxisSignPair JoyShock::getSetting(SettingID)’ cannot be overloaded with ‘float JoyShock::getSetting(SettingID)’
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:378:15: note: previous declaration ‘float JoyShock::getSetting(SettingID)’
  378 |         float getSetting(SettingID index)
      |               ^~~~~~~~~~
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp: In instantiation of ‘E JoyShock::getSetting(SettingID) [with E = Color]’:
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:214:33:   required from here
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:315:43: error: static assertion failed: Parameter of JoyShock::getSetting<E> has to be an enum type
  315 |                 static_assert(is_enum<E>::value, "Parameter of JoyShock::getSetting<E> has to be an enum type");
      |                                           ^~~~~
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:315:43: note: ‘std::integral_constant<bool, false>::value’ evaluates to false
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp: In instantiation of ‘E JoyShock::getSetting(SettingID) [with E = FloatXY]’:
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:1664:45:   required from here
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:315:43: error: static assertion failed: Parameter of JoyShock::getSetting<E> has to be an enum type
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:315:43: note: ‘std::integral_constant<bool, false>::value’ evaluates to false
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp: In instantiation of ‘E JoyShock::getSetting(SettingID) [with E = std::pair<AxisMode, AxisMode>]’:
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:2060:42:   required from here
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:315:43: error: static assertion failed: Parameter of JoyShock::getSetting<E> has to be an enum type
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:315:43: note: ‘std::integral_constant<bool, false>::value’ evaluates to false
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp: In instantiation of ‘E JoyShock::getSetting(SettingID) [with E = GyroSettings]’:
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:2655:42:   required from here
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:315:43: error: static assertion failed: Parameter of JoyShock::getSetting<E> has to be an enum type
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:315:43: note: ‘std::integral_constant<bool, false>::value’ evaluates to false
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp: In instantiation of ‘E JoyShock::getSetting(SettingID) [with E = AdaptiveTriggerSetting]’:
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:3102:59:   required from here
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:315:43: error: static assertion failed: Parameter of JoyShock::getSetting<E> has to be an enum type
/home/jazztache/Source/JoyShockMapper/JoyShockMapper/src/main.cpp:315:43: note: ‘std::integral_constant<bool, false>::value’ evaluates to false
make[2]: *** [JoyShockMapper/CMakeFiles/JoyShockMapper.dir/build.make:76: JoyShockMapper/CMakeFiles/JoyShockMapper.dir/src/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:177: JoyShockMapper/CMakeFiles/JoyShockMapper.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
jazztache@jazztarche-revengance ~/S/J/build (master) [2]> 
Jazztache commented 9 months ago

Was this addressed? Any dependencies fixed or other necessary changes made?

Electronicks commented 9 months ago

I'll reopen to let the linux specialist look at it.

Jazztache commented 9 months ago

Thankyou. If they're not too busy, it might be fruitful to ping them here. It might also be useful to check if a similar issue is on JoyShockLibrary as well, since it could be an upstream issue.

rtiemann commented 8 months ago

I just compiled JoyShockMapper on Arch Linux, and it works. Seems like you had a typo in your command: you used -DCMAKE_CXX_COMPILE=clang++, but it should have been -DCMAKE_CXX_COMPILER=clang++ (you forgot an R).

The AUR is indeed slightly broken as it tries to delete files which don't exist. You can fix it by removing the rm line near the end of the PKGBUILD file and replacing it with

find "${pkgdir}/usr/lib" -name '*.a' -exec rm "{}" \;
find "${pkgdir}/usr/lib" -name '*.so*' -exec rm "{}" \;