Fix build dependency if swig wrapper and documentation is both switched on
authorThomas Jarosch <thomas.jarosch@intra2net.com>
Tue, 1 Oct 2019 14:17:09 +0000 (16:17 +0200)
committerThomas Jarosch <thomas.jarosch@intra2net.com>
Tue, 1 Oct 2019 14:17:09 +0000 (16:17 +0200)
Seems to affect new cmake / swig versions only.

Reported by Richard Shaw <hobbes1069@gmail.com> during Fedora Rawhide build:

Ok, so far looks like I was right, you have to set the dependency on
ftdi1_doc.i before calling swig_add_library or it doesn't get it right:

[ 11%] Swig compile ftdi1.i for python
/usr/bin/doxygen /builddir/build/BUILD/libftdi-f49ee0d/build-py2/Doxyfile
cd /builddir/build/BUILD/libftdi-f49ee0d/build-py2/python && /usr/bin/cmake
-E make_directory /builddir/build/BUILD/libftdi-f49ee0d/build-py2/python
/builddir/build/BUILD/libftdi-f49ee0d/build-py2/python/CMakeFiles/_ftdi1.dir
/usr/bin/doxygen
/builddir/build/BUILD/libftdi-f49ee0d/build-py2/Doxyfile.xml
cd /builddir/build/BUILD/libftdi-f49ee0d/build-py2/python && /usr/bin/cmake
-E touch
/builddir/build/BUILD/libftdi-f49ee0d/build-py2/python/CMakeFiles/_ftdi1.dir/ftdi1PYTHON.stamp
cd /builddir/build/BUILD/libftdi-f49ee0d/build-py2/python && /usr/bin/cmake
-E env SWIG_LIB=/usr/share/swig/3.0.12 /usr/bin/swig -python -DDOXYGEN=YES
-outdir /builddir/build/BUILD/libftdi-f49ee0d/build-py2/python
-I/builddir/build/BUILD/libftdi-f49ee0d/src -I/usr/include/libusb-1.0
-I/usr/include/python2.7 -o
/builddir/build/BUILD/libftdi-f49ee0d/build-py2/python/CMakeFiles/_ftdi1.dir/ftdi1PYTHON_wrap.c
/builddir/build/BUILD/libftdi-f49ee0d/python/ftdi1.i
/builddir/build/BUILD/libftdi-f49ee0d/python/ftdi1.i:7: Error: Unable to
find 'ftdi1_doc.i'
make[2]: *** [python/CMakeFiles/ftdi1_swig_compilation.dir/build.make:67:
python/CMakeFiles/_ftdi1.dir/ftdi1PYTHON.stamp] Error 1

python/CMakeLists.txt

index 4f758d5..fc1c3d1 100644 (file)
@@ -24,6 +24,8 @@ link_directories ( ${CMAKE_CURRENT_BINARY_DIR}/../src )
 
 if ( DOCUMENTATION )
   set(CMAKE_SWIG_FLAGS -DDOXYGEN=${DOXYGEN_FOUND})
+  # manually add dependency for new cmake / swig versions
+  set_property(SOURCE ftdi1.i PROPERTY DEPENDS ftdi1_doc.i)
 endif()
 if(NOT CMAKE_VERSION VERSION_LESS 3.8.0)
   swig_add_library ( ftdi1 LANGUAGE python SOURCES ftdi1.i )