offa / plug

Software for Fender Mustang Amps.
GNU General Public License v3.0
54 stars 20 forks source link

Cmake fails due to Gtest dependency on Ubuntu Studio 22.04 #14

Closed d0h1 closed 1 year ago

d0h1 commented 2 years ago

The "cmake .." command fails due to Gtest dependency on Ubuntu Studio 22.04

CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find GTest (missing: GTest_Mock_INCLUDE_DIR GTest_Mock_LIBRARY)
Call Stack (most recent call first):
  /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  cmake/FindGTest.cmake:33 (find_package_handle_standard_args)
  test/CMakeLists.txt:1 (find_package)

I installed libgtest-dev, build the libraries (got 2 *.a files) and moved them to /usr/lib but cmake still fails as above. Any ideas? Is it maybe possible to build without the dependency to Gtest? Thanks in advance!

offa commented 2 years ago

Does the Ubuntu package install a more or less up-to-date version of GTest (1.12.1 is latest)? It should include headers and libraries to work properly. In doubt you can use alternatives, eg. Conan or building GTest from source (that's what CI does).

Is it maybe possible to build without the dependency to Gtest? Thanks in advance!

Of course! You can set UNITTEST CMake option to OFF and build without tests / GTest dependency. Either set it through GUI or by passing -DUNITTEST=OFF to Cmake.

d0h1 commented 2 years ago

Thanks a lot! -DUNITTEST=OFF did the trick for building plug. Unfortunately I now get ERROR: Invalid effect id: 186 ERROR: Resource busy when trying to connect to the amp. Interestingly my Mustang III v2 is recognized as Mustang IV v2 when running lsusb. I will need to dig in the udev rules.

d0h1 commented 2 years ago

I see now in the code that usbPID is the same for Mustangs III, IV and V v2. sudo make install did not put any new rule into /etc/udev/rules.d/ apparently, so I added your 50-mustang.rules manually and rebooted but that did not help. User belongs to the plugdev group.

offa commented 2 years ago

There should be three files installed:

Do you have the others too?

j824h commented 2 years ago

I suspect libgmock-dev is not installed in your system.

The "cmake .." command fails due to Gtest dependency on Ubuntu Studio 22.04

CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find GTest (missing: GTest_Mock_INCLUDE_DIR GTest_Mock_LIBRARY)
Call Stack (most recent call first):
  /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  cmake/FindGTest.cmake:33 (find_package_handle_standard_args)
  test/CMakeLists.txt:1 (find_package)

I installed libgtest-dev, build the libraries (got 2 *.a files) and moved them to /usr/lib but cmake still fails as above. Any ideas? Is it maybe possible to build without the dependency to Gtest? Thanks in advance!

j824h commented 2 years ago

I suspect you already got through the permission issue, since libusb-1.0 is not complaining about Permission denied. Then we probably should move to #6. I already found that my Mustang I V2 uses a dialect, so it is likely that III, IV do so. I suggest trying my patch b536b2af4eb539541a53613e48f4994367e29534.

Thanks a lot! -DUNITTEST=OFF did the trick for building plug. Unfortunately I now get ERROR: Invalid effect id: 186 ERROR: Resource busy when trying to connect to the amp. Interestingly my Mustang III v2 is recognized as Mustang IV v2 when running lsusb. I will need to dig in the udev rules.

ScottG489 commented 1 year ago

I ran into this issue as well. It looks like on my system (Ubuntu 22.04) when I install libgtest-dev it installs version 1.11.0-3. You mentioned 1.12.1 so perhaps this version is too old?

Otherwise, cmake -DUNITTEST=OFF .. also worked for me.

Unfortunately, it doesn't look like it's able to find my amp (Mustang LT25)

offa commented 1 year ago

As mentioned above you can try libgmock-dev too. gtest and gmock are needed and Ubuntu seems to split into two packages here.