CatxFish / motion-effect

obs-studio plugin for source item animation
https://obsproject.com/forum/resources/motion-filter.668/
GNU General Public License v2.0
212 stars 38 forks source link

[SOLVED] Confusion about the LIBOBS_LIB and -DLIBOBS_INCLUDE_DIR in linux #30

Closed zenny closed 3 years ago

zenny commented 3 years ago

[Please see #31 for a solution]

Hi,

I am trying to build the motion-effect in voidlinux which has similar directory-structure like ubuntu.

There is a confusion about some of the flags described to compile and build with cmake.

cmake -DLIBOBS_INCLUDE_DIR="<libobs path>" -DCMAKE_INSTALL_PREFIX=/usr ..

1st Try

Directory structure: http://ix.io/2x1y

I have downloaded the obs-studio master in the same directory which holds motion-effect plugin. The directory structure looks like in http://ix.io/2x1y.

When I tried to compile, it gives an error:

$
cmake -DLIBOBS_LIB="/usr/share/obs/" -DLIBOBS_INCLUDE_DIR="../obs-studio/cmake/external/" -DCMAKE_INSTALL_PREFIX=/usr ..
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Libobs: /usr/share/obs
CMake Error at external/FindLibObs.cmake:98 (include):
  include could not find load file:

    /home/zenny/Downloads/obs/motion-effect-build/motion-effect/obs-studio/cmake/external/../cmake/external/ObsPluginHelpers.cmake
Call Stack (most recent call first):
  src/motion-filter/CMakeLists.txt:4 (include)

CMake Error at external/FindLibObs.cmake:98 (include):
  include could not find load file:

    /home/zenny/Downloads/obs/motion-effect-build/motion-effect/obs-studio/cmake/external/../cmake/external/ObsPluginHelpers.cmake
Call Stack (most recent call first):
  src/motion-transition/CMakeLists.txt:4 (include)

-- Configuring incomplete, errors occurred!

2nd Try

Directory structure: http://ix.io/2x1A

Alternatively, I have moved the obs-studio source repo inside the motion-effect source directory as appeared in http://ix.io/2x1A, but the error remained the same.


$
cmake -DLIBOBS_LIB="/usr/share/obs/" -DLIBOBS_INCLUDE_DIR="../obs-studio/cmake/external/" -DCMAKE_INSTALL_PREFIX=/usr ..
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Libobs: /usr/share/obs
CMake Error at external/FindLibObs.cmake:98 (include):
  include could not find load file:

    /home/zenny/Downloads/obs/motion-effect-build/motion-effect/obs-studio/cmake/external/../cmake/external/ObsPluginHelpers.cmake
Call Stack (most recent call first):
  src/motion-filter/CMakeLists.txt:4 (include)

CMake Error at external/FindLibObs.cmake:98 (include):
  include could not find load file:

    /home/zenny/Downloads/obs/motion-effect-build/motion-effect/obs-studio/cmake/external/../cmake/external/ObsPluginHelpers.cmake
Call Stack (most recent call first):
  src/motion-transition/CMakeLists.txt:4 (include)

-- Configuring incomplete, errors occurred!
See also "/home/zenny/Downloads/obs/motion-effect-build/motion-effect/build/CMakeFiles/CMakeOutput.log".

When checked in command line, the reportedly 'missing' file ObsPluginHelpers.cmake do exist!?

$ find ./motion-effect/obs-studio/cmake/external/* -iname ObsPluginHelpers.cmake
./motion-effect/obs-studio/cmake/external/ObsPluginHelpers.cmake

3rd Try

Directory structure: http://ix.io/2x1A

In pursuant to https://github.com/CatxFish/motion-effect/issues/23#issuecomment-604191545, I even tried without success:

$
cmake -DLIBOBS_LIB="/usr/share/obs/" -DLIBOBS_INCLUDE_DIR="/usr/share/obs" -DLibObs_DIR="../obs-studio/cmake/external/" -DCMAKE_INSTALL_PREFIX=/usr ..
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Libobs: /usr/share/obs
CMake Error at external/FindLibObs.cmake:98 (include):
  include could not find load file:

    /usr/share/obs/../cmake/external/ObsPluginHelpers.cmake
Call Stack (most recent call first):
  src/motion-filter/CMakeLists.txt:4 (include)

CMake Error at external/FindLibObs.cmake:98 (include):
  include could not find load file:

    /usr/share/obs/../cmake/external/ObsPluginHelpers.cmake
Call Stack (most recent call first):
  src/motion-transition/CMakeLists.txt:4 (include)

-- Configuring incomplete, errors occurred!
See also "/home/zenny/Downloads/obs/motion-effect-build/motion-effect/build/CMakeFiles/CMakeOutput.log".

I have also changed to -DLIBOBS_INCLUDE_DIR="../obs-studio/" in all three tries, but with the same error output!

Error Log

Relevant CMakeOutput.log is posted in http://ix.io/2x1E.

Any clue on what exactly should be the defined against LIBOBS_LIB and LIBOBS_INCLUDE_DIR in linux? Thanks in advance.

Cheers and stay safe,

zenny commented 3 years ago

4th Try

In line with the StreamFX build instructions, I have also tried with the following command without success:

$  cmake -H. -B"build/flux" -G"Ninja" -DOBS_DOWNLOAD=ON -DCMAKE_PACKAGE_NAME=motion-effect -DCMAKE_PACKAGE_PREFIX="build/package" -DCMAKE_INSTALL_PREFIX="build/distrib" -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc -DCMAKE_SKIP_RPATH="YES" -DLIBOBS_INCLUDE_DIR="./obs-studio/"
-- Found Libobs: /usr/bin/../lib64/libobs.so
CMake Error at external/FindLibObs.cmake:98 (include):
  include could not find load file:

    /home/zenny/Downloads/obs/motion-effect-build/motion-effect/obs-studio/../cmake/external/ObsPluginHelpers.cmake
Call Stack (most recent call first):
  src/motion-filter/CMakeLists.txt:4 (include)

CMake Error at external/FindLibObs.cmake:98 (include):
  include could not find load file:

    /home/zenny/Downloads/obs/motion-effect-build/motion-effect/obs-studio/../cmake/external/ObsPluginHelpers.cmake
Call Stack (most recent call first):
  src/motion-transition/CMakeLists.txt:4 (include)

-- Configuring incomplete, errors occurred!
See also "/home/zenny/Downloads/obs/motion-effect-build/motion-effect/build/flux/CMakeFiles/CMakeOutput.log".

Try 4 log

The related log is posted in http://ix.io/2x2H

Thanks!

zenny commented 3 years ago

31 solves this issue. Thanks.