From b734c7054330e2a0615c654e043065a172189a48 Mon Sep 17 00:00:00 2001 From: srcejon Date: Thu, 26 May 2022 21:33:11 +0100 Subject: [PATCH 1/6] Add hidapi project. Don't cache _DEPENDs macros, so depenendcies are only set when externalprojects are added. --- external/CMakeLists.txt | 49 +++++++++++++++++++++++++++++------------ 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index 1d656bc0e..66608ae59 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -208,6 +208,8 @@ else() set(USE_PRECOMPILED_LIBS TRUE) endif() +# We don't CACHE for _DEPENDS variable, as the external project is only added when NOT _FOUND + if (NOT LIBUSB_FOUND AND NOT USE_PRECOMPILED_LIBS) # Cloning git repo doesn't include configure, so we download the bz2 which does ExternalProject_Add(libusb @@ -218,7 +220,7 @@ if (NOT LIBUSB_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(libusb install_dir) - set(LIBUSB_DEPENDS libusb CACHE INTERNAL "") + set(LIBUSB_DEPENDS libusb) set(LIBUSB_FOUND ON CACHE INTERNAL "") set(LIBUSB_EXTERNAL ON CACHE INTERNAL "") set(LIBUSB_INCLUDE_DIR "${install_dir}/include/libusb-1.0" CACHE INTERNAL "") @@ -232,6 +234,25 @@ if (NOT LIBUSB_FOUND AND NOT USE_PRECOMPILED_LIBS) endif () endif (NOT LIBUSB_FOUND AND NOT USE_PRECOMPILED_LIBS) +if (NOT HIDAPI_FOUND AND NOT USE_PRECOMPILED_LIBS) + ExternalProject_Add(hidapi + GIT_REPOSITORY https://github.com/libusb/hidapi.git + PREFIX "${EXTERNAL_BUILD_LIBRARIES}/hidapi" + CMAKE_ARGS ${COMMON_CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX= + TEST_COMMAND "" + ) + ExternalProject_Get_Property(hidapi install_dir) + set(HIDAPI_DEPENDS hidapi) + set(HIDAPI_FOUND ON CACHE INTERNAL "") + set(HIDAPI_EXTERNAL ON CACHE INTERNAL "") + set(HIDAPI_ROOT_DIR "${install_dir}" CACHE INTERNAL "") + set(HIDAPI_INCLUDE_DIRS "${install_dir}/include" CACHE INTERNAL "") + if (APPLE) + set(HIDAPI_LIBRARIES "${install_dir}/lib/libhidapi${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") + set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${install_dir}/lib") + endif () +endif (NOT HIDAPI_FOUND AND NOT USE_PRECOMPILED_LIBS) + if (NOT OPUS_FOUND AND NOT USE_PRECOMPILED_LIBS) ExternalProject_Add(opus GIT_REPOSITORY https://github.com/xiph/opus @@ -241,7 +262,7 @@ if (NOT OPUS_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(opus install_dir) - set(OPUS_DEPENDS opus CACHE INTERNAL "") + set(OPUS_DEPENDS opus) set(OPUS_FOUND ON CACHE INTERNAL "") set(OPUS_EXTERNAL ON CACHE INTERNAL "") set(OPUS_INCLUDE_DIRS "${install_dir}/include" CACHE INTERNAL "") @@ -264,7 +285,7 @@ if (NOT ZLIB_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(zlib install_dir) - set(ZLIB_DEPENDS zlib CACHE INTERNAL "") + set(ZLIB_DEPENDS zlib) set(ZLIB_FOUND ON CACHE INTERNAL "") set(ZLIB_EXTERNAL ON CACHE INTERNAL "") set(ZLIB_INCLUDE_DIRS "${install_dir}/include" CACHE INTERNAL "") @@ -286,7 +307,7 @@ if (NOT FAAD_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(faad source_dir binary_dir install_dir) - set(FAAD_DEPENDS faad CACHE INTERNAL "") + set(FAAD_DEPENDS faad) set(FAAD_FOUND ON CACHE INTERNAL "") set(FAAD_EXTERNAL ON CACHE INTERNAL "") set(FAAD_INCLUDE_DIR "${install_dir}/include" CACHE INTERNAL "") @@ -310,7 +331,7 @@ if (NOT FFTW3F_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(fftw3f source_dir binary_dir) - set(FFTW3F_DEPENDS fftw3f CACHE INTERNAL "") + set(FFTW3F_DEPENDS fftw3f) set(FFTW3F_FOUND ON CACHE INTERNAL "") set(FFTW3F_EXTERNAL ON CACHE INTERNAL "") set(FFTW3F_INCLUDE_DIRS "${source_dir}/api" "${binary_dir}" CACHE INTERNAL "") @@ -393,7 +414,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(x264 install_dir) - set(X264_DEPENDS x264 CACHE INTERNAL "") + set(X264_DEPENDS x264) set(X264_PKG_CONFIG_DIR "${install_dir}/lib/pkgconfig") set(X264_FOUND ON CACHE INTERNAL "") set(X264_EXTERNAL ON CACHE INTERNAL "") @@ -411,7 +432,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(x265 install_dir) - set(X265_DEPENDS x265 CACHE INTERNAL "") + set(X265_DEPENDS x265) set(X265_PKG_CONFIG_DIR "${install_dir}/lib/pkgconfig") set(X265_FOUND ON CACHE INTERNAL "") set(X265_EXTERNAL ON CACHE INTERNAL "") @@ -428,7 +449,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(fdk_aac install_dir) - set(FDK_AAC_DEPENDS fdk_aac CACHE INTERNAL "") + set(FDK_AAC_DEPENDS fdk_aac) set(FDK_AAC_PKG_CONFIG_DIR "${install_dir}/lib/pkgconfig") set(FDK_AAC_FOUND ON CACHE INTERNAL "") set(FDK_AAC_EXTERNAL ON CACHE INTERNAL "") @@ -447,7 +468,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(mpg123 install_dir) - set(MPG123_DEPENDS mpg123 CACHE INTERNAL "") + set(MPG123_DEPENDS mpg123) set(MPG123_PKG_CONFIG_DIR "${install_dir}/lib/pkgconfig") set(MPG123_FOUND ON CACHE INTERNAL "") set(MPG123_EXTERNAL ON CACHE INTERNAL "") @@ -467,7 +488,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(lame install_dir) - set(LAME_DEPENDS lame CACHE INTERNAL "") + set(LAME_DEPENDS lame) # ffmpeg doesn't try to use pkg-config for lame, as it doesn't include a .pc file #set(LAME_PKG_CONFIG_DIR "${install_dir}/lib/pkgconfig") set(LAME_EXTRA_CFLAGS "-I${install_dir}/include") @@ -491,7 +512,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(ffmpeg install_dir) - set(FFMPEG_DEPENDS ffmpeg CACHE INTERNAL "") + set(FFMPEG_DEPENDS ffmpeg) set(FFMPEG_INSTALL_DIR "${install_dir}") set(FFMPEG_FOUND ON CACHE INTERNAL "") set(FFMPEG_EXTERNAL ON CACHE INTERNAL "") @@ -523,7 +544,7 @@ if (NOT OpenCV_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(opencv source_dir binary_dir) - set(OpenCV_DEPENDS opencv CACHE INTERNAL "") + set(OpenCV_DEPENDS opencv) set(OpenCV_FOUND ON CACHE INTERNAL "") set(OpenCV_EXTERNAL ON CACHE INTERNAL "") set(OpenCV_INCLUDE_DIRS @@ -578,7 +599,7 @@ if ((NOT CODEC2_FOUND OR CODEC2_EXTERNAL) AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(codec2 source_dir binary_dir) - set(CODEC2_DEPENDS codec2 CACHE INTERNAL "") + set(CODEC2_DEPENDS codec2) set(CODEC2_FOUND ON CACHE INTERNAL "") set(CODEC2_EXTERNAL ON CACHE INTERNAL "") set(CODEC2_INCLUDE_DIR "${source_dir}/src" "${binary_dir}" CACHE INTERNAL "") @@ -619,7 +640,7 @@ if (NOT CM256CC_FOUND OR CM256CC_EXTERNAL) TEST_COMMAND "" ) ExternalProject_Get_Property(cm256cc source_dir binary_dir) - set(CM256CC_DEPENDS cm256cc CACHE INTERNAL "") + set(CM256CC_DEPENDS cm256cc) set(CM256CC_FOUND ON CACHE INTERNAL "") set(CM256CC_EXTERNAL ON CACHE INTERNAL "") # we need cm256cc/library.h From c6e1ea51a63e2aa16e91acc0515adc466d2a6d67 Mon Sep 17 00:00:00 2001 From: srcejon Date: Thu, 26 May 2022 21:34:18 +0100 Subject: [PATCH 2/6] Update include path so it can be found via HIDAPI_INCLUDE_DIRS --- fcdhid/fcdhid.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fcdhid/fcdhid.h b/fcdhid/fcdhid.h index b33d87c5c..39e6ee6f4 100644 --- a/fcdhid/fcdhid.h +++ b/fcdhid/fcdhid.h @@ -28,7 +28,7 @@ #include #include #include "fcdhidcmd.h" -#include "hidapi/hidapi.h" +#include "hidapi.h" #include From c926711f89f7d391dfde6a508456c71e8838ef23 Mon Sep 17 00:00:00 2001 From: srcejon Date: Thu, 26 May 2022 21:35:09 +0100 Subject: [PATCH 3/6] Only add opencv project as a dependency when it actually is --- plugins/channeltx/modatv/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/channeltx/modatv/CMakeLists.txt b/plugins/channeltx/modatv/CMakeLists.txt index 9634eca10..832871c57 100644 --- a/plugins/channeltx/modatv/CMakeLists.txt +++ b/plugins/channeltx/modatv/CMakeLists.txt @@ -61,7 +61,7 @@ target_link_libraries(${TARGET_NAME} "${OpenCV_LIBS}" ) -if(OpenCV_EXTERNAL) +if(DEFINED OpenCV_DEPENDS) add_dependencies(${TARGET_NAME} opencv) endif() From 253e4b2c2f615f54b9bbe3ece377396637b56f1a Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Fri, 27 May 2022 06:45:22 +0100 Subject: [PATCH 4/6] Use PARENT_SCOPE for _DEPENDS variables so visible in other CMakeFiles --- external/CMakeLists.txt | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index 66608ae59..349350d33 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -209,6 +209,7 @@ else() endif() # We don't CACHE for _DEPENDS variable, as the external project is only added when NOT _FOUND +# Use PARENT_SCOPE so they can still be used in other CMakeFiles if (NOT LIBUSB_FOUND AND NOT USE_PRECOMPILED_LIBS) # Cloning git repo doesn't include configure, so we download the bz2 which does @@ -220,7 +221,7 @@ if (NOT LIBUSB_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(libusb install_dir) - set(LIBUSB_DEPENDS libusb) + set(LIBUSB_DEPENDS libusb PARENT_SCOPE) set(LIBUSB_FOUND ON CACHE INTERNAL "") set(LIBUSB_EXTERNAL ON CACHE INTERNAL "") set(LIBUSB_INCLUDE_DIR "${install_dir}/include/libusb-1.0" CACHE INTERNAL "") @@ -242,7 +243,7 @@ if (NOT HIDAPI_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(hidapi install_dir) - set(HIDAPI_DEPENDS hidapi) + set(HIDAPI_DEPENDS hidapi PARENT_SCOPE) set(HIDAPI_FOUND ON CACHE INTERNAL "") set(HIDAPI_EXTERNAL ON CACHE INTERNAL "") set(HIDAPI_ROOT_DIR "${install_dir}" CACHE INTERNAL "") @@ -262,7 +263,7 @@ if (NOT OPUS_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(opus install_dir) - set(OPUS_DEPENDS opus) + set(OPUS_DEPENDS opus PARENT_SCOPE) set(OPUS_FOUND ON CACHE INTERNAL "") set(OPUS_EXTERNAL ON CACHE INTERNAL "") set(OPUS_INCLUDE_DIRS "${install_dir}/include" CACHE INTERNAL "") @@ -285,7 +286,7 @@ if (NOT ZLIB_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(zlib install_dir) - set(ZLIB_DEPENDS zlib) + set(ZLIB_DEPENDS zlib PARENT_SCOPE) set(ZLIB_FOUND ON CACHE INTERNAL "") set(ZLIB_EXTERNAL ON CACHE INTERNAL "") set(ZLIB_INCLUDE_DIRS "${install_dir}/include" CACHE INTERNAL "") @@ -307,7 +308,7 @@ if (NOT FAAD_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(faad source_dir binary_dir install_dir) - set(FAAD_DEPENDS faad) + set(FAAD_DEPENDS faad PARENT_SCOPE) set(FAAD_FOUND ON CACHE INTERNAL "") set(FAAD_EXTERNAL ON CACHE INTERNAL "") set(FAAD_INCLUDE_DIR "${install_dir}/include" CACHE INTERNAL "") @@ -331,7 +332,7 @@ if (NOT FFTW3F_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(fftw3f source_dir binary_dir) - set(FFTW3F_DEPENDS fftw3f) + set(FFTW3F_DEPENDS fftw3f PARENT_SCOPE) set(FFTW3F_FOUND ON CACHE INTERNAL "") set(FFTW3F_EXTERNAL ON CACHE INTERNAL "") set(FFTW3F_INCLUDE_DIRS "${source_dir}/api" "${binary_dir}" CACHE INTERNAL "") @@ -414,7 +415,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(x264 install_dir) - set(X264_DEPENDS x264) + set(X264_DEPENDS x264 PARENT_SCOPE) set(X264_PKG_CONFIG_DIR "${install_dir}/lib/pkgconfig") set(X264_FOUND ON CACHE INTERNAL "") set(X264_EXTERNAL ON CACHE INTERNAL "") @@ -432,7 +433,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(x265 install_dir) - set(X265_DEPENDS x265) + set(X265_DEPENDS x265 PARENT_SCOPE) set(X265_PKG_CONFIG_DIR "${install_dir}/lib/pkgconfig") set(X265_FOUND ON CACHE INTERNAL "") set(X265_EXTERNAL ON CACHE INTERNAL "") @@ -449,7 +450,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(fdk_aac install_dir) - set(FDK_AAC_DEPENDS fdk_aac) + set(FDK_AAC_DEPENDS fdk_aac PARENT_SCOPE) set(FDK_AAC_PKG_CONFIG_DIR "${install_dir}/lib/pkgconfig") set(FDK_AAC_FOUND ON CACHE INTERNAL "") set(FDK_AAC_EXTERNAL ON CACHE INTERNAL "") @@ -468,7 +469,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(mpg123 install_dir) - set(MPG123_DEPENDS mpg123) + set(MPG123_DEPENDS mpg123 PARENT_SCOPE) set(MPG123_PKG_CONFIG_DIR "${install_dir}/lib/pkgconfig") set(MPG123_FOUND ON CACHE INTERNAL "") set(MPG123_EXTERNAL ON CACHE INTERNAL "") @@ -488,7 +489,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(lame install_dir) - set(LAME_DEPENDS lame) + set(LAME_DEPENDS lame PARENT_SCOPE) # ffmpeg doesn't try to use pkg-config for lame, as it doesn't include a .pc file #set(LAME_PKG_CONFIG_DIR "${install_dir}/lib/pkgconfig") set(LAME_EXTRA_CFLAGS "-I${install_dir}/include") @@ -512,7 +513,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(ffmpeg install_dir) - set(FFMPEG_DEPENDS ffmpeg) + set(FFMPEG_DEPENDS ffmpeg PARENT_SCOPE) set(FFMPEG_INSTALL_DIR "${install_dir}") set(FFMPEG_FOUND ON CACHE INTERNAL "") set(FFMPEG_EXTERNAL ON CACHE INTERNAL "") @@ -544,7 +545,7 @@ if (NOT OpenCV_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(opencv source_dir binary_dir) - set(OpenCV_DEPENDS opencv) + set(OpenCV_DEPENDS opencv PARENT_SCOPE) set(OpenCV_FOUND ON CACHE INTERNAL "") set(OpenCV_EXTERNAL ON CACHE INTERNAL "") set(OpenCV_INCLUDE_DIRS @@ -599,7 +600,7 @@ if ((NOT CODEC2_FOUND OR CODEC2_EXTERNAL) AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(codec2 source_dir binary_dir) - set(CODEC2_DEPENDS codec2) + set(CODEC2_DEPENDS codec2 PARENT_SCOPE) set(CODEC2_FOUND ON CACHE INTERNAL "") set(CODEC2_EXTERNAL ON CACHE INTERNAL "") set(CODEC2_INCLUDE_DIR "${source_dir}/src" "${binary_dir}" CACHE INTERNAL "") @@ -640,7 +641,7 @@ if (NOT CM256CC_FOUND OR CM256CC_EXTERNAL) TEST_COMMAND "" ) ExternalProject_Get_Property(cm256cc source_dir binary_dir) - set(CM256CC_DEPENDS cm256cc) + set(CM256CC_DEPENDS cm256cc PARENT_SCOPE) set(CM256CC_FOUND ON CACHE INTERNAL "") set(CM256CC_EXTERNAL ON CACHE INTERNAL "") # we need cm256cc/library.h @@ -673,7 +674,7 @@ if ((NOT LIBDSDCC_FOUND OR LIBDSDCC_EXTERNAL) AND (NOT LIBMBE_FOUND OR LIBMBE_EX ) ExternalProject_Get_Property(mbelib source_dir binary_dir) set(USE_MBELIB ON) - set(DSDCC_DEPENDS mbelib) + set(DSDCC_DEPENDS mbelib PARENT_SCOPE) set(LIBMBE_FOUND ON CACHE INTERNAL "") set(LIBMBE_EXTERNAL ON CACHE INTERNAL "") set(LIBMBE_INCLUDE_DIR "${source_dir}" CACHE INTERNAL "") @@ -704,7 +705,7 @@ if (NOT LIBSERIALDV_FOUND OR LIBSERIALDV_EXTERNAL) TEST_COMMAND "" ) ExternalProject_Get_Property(serialdv source_dir binary_dir) - set(DSDCC_DEPENDS ${DSDCC_DEPENDS} serialdv) + set(DSDCC_DEPENDS ${DSDCC_DEPENDS} serialdv PARENT_SCOPE) set(LIBSERIALDV_FOUND ON CACHE INTERNAL "") set(LIBSERIALDV_EXTERNAL ON CACHE INTERNAL "") set(LIBSERIALDV_INCLUDE_DIR "${source_dir}" CACHE INTERNAL "") @@ -836,7 +837,7 @@ if (WIN32) TEST_COMMAND "" ) ExternalProject_Get_Property(pthreads4w source_dir binary_dir) - set(PTHREADS4W_DEPENDS pthreads4w) + set(PTHREADS4W_DEPENDS pthreads4w PARENT_SCOPE) set(PTHREADS4W_FOUND ON CACHE INTERNAL "") set(PTHREADS4W_EXTERNAL ON CACHE INTERNAL "") set(PTHREADS4W_INCLUDE_DIR "${source_dir}" CACHE INTERNAL "") @@ -893,7 +894,7 @@ if (ZLIB_FOUND AND FAAD_FOUND) ) endif(WIN32) ExternalProject_Get_Property(dab source_dir binary_dir) - set(DAB_DEPENDS dab CACHE INTERNAL "") + set(DAB_DEPENDS dab PARENT_SCOPE) set(DAB_FOUND ON CACHE INTERNAL "") set(DAB_EXTERNAL ON CACHE INTERNAL "") set(DAB_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/dab/src/dab" CACHE INTERNAL "") @@ -1333,7 +1334,7 @@ if (WIN32 OR APPLE) ) endif () ExternalProject_Get_Property(libxml2 source_dir binary_dir) - set(LIBXML2_DEPENDS libxml2) + set(LIBXML2_DEPENDS libxml2 PARENT_SCOPE) set(LIBXML2_FOUND ON CACHE INTERNAL "") set(LIBXML2_EXTERNAL ON CACHE INTERNAL "") set(LIBXML2_INCLUDE_DIR "${source_dir}/include" CACHE INTERNAL "") From 9c65d41839ee23346fe77d182bc6925ceca8e860 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Fri, 27 May 2022 10:36:02 +0100 Subject: [PATCH 5/6] Set DEPENDS in local and parent scope --- external/CMakeLists.txt | 49 +++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index 349350d33..46c5e0267 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -208,8 +208,13 @@ else() set(USE_PRECOMPILED_LIBS TRUE) endif() -# We don't CACHE for _DEPENDS variable, as the external project is only added when NOT _FOUND -# Use PARENT_SCOPE so they can still be used in other CMakeFiles +# We don't CACHE the _DEPENDS variables, as the external project is only added when NOT _FOUND +# and not in subsequent configures when _FOUND +# Use PARENT_SCOPE so they can still be used in other CMakeFiles. +macro(set_global NAME VALUE) + set(${NAME} ${VALUE}) + set(${NAME} ${VALUE} PARENT_SCOPE) +endmacro() if (NOT LIBUSB_FOUND AND NOT USE_PRECOMPILED_LIBS) # Cloning git repo doesn't include configure, so we download the bz2 which does @@ -221,7 +226,7 @@ if (NOT LIBUSB_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(libusb install_dir) - set(LIBUSB_DEPENDS libusb PARENT_SCOPE) + set_global(LIBUSB_DEPENDS libusb) set(LIBUSB_FOUND ON CACHE INTERNAL "") set(LIBUSB_EXTERNAL ON CACHE INTERNAL "") set(LIBUSB_INCLUDE_DIR "${install_dir}/include/libusb-1.0" CACHE INTERNAL "") @@ -243,7 +248,7 @@ if (NOT HIDAPI_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(hidapi install_dir) - set(HIDAPI_DEPENDS hidapi PARENT_SCOPE) + set_global(HIDAPI_DEPENDS hidapi) set(HIDAPI_FOUND ON CACHE INTERNAL "") set(HIDAPI_EXTERNAL ON CACHE INTERNAL "") set(HIDAPI_ROOT_DIR "${install_dir}" CACHE INTERNAL "") @@ -263,7 +268,7 @@ if (NOT OPUS_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(opus install_dir) - set(OPUS_DEPENDS opus PARENT_SCOPE) + set_global(OPUS_DEPENDS opus) set(OPUS_FOUND ON CACHE INTERNAL "") set(OPUS_EXTERNAL ON CACHE INTERNAL "") set(OPUS_INCLUDE_DIRS "${install_dir}/include" CACHE INTERNAL "") @@ -286,7 +291,7 @@ if (NOT ZLIB_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(zlib install_dir) - set(ZLIB_DEPENDS zlib PARENT_SCOPE) + set_global(ZLIB_DEPENDS zlib) set(ZLIB_FOUND ON CACHE INTERNAL "") set(ZLIB_EXTERNAL ON CACHE INTERNAL "") set(ZLIB_INCLUDE_DIRS "${install_dir}/include" CACHE INTERNAL "") @@ -308,7 +313,7 @@ if (NOT FAAD_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(faad source_dir binary_dir install_dir) - set(FAAD_DEPENDS faad PARENT_SCOPE) + set_global(FAAD_DEPENDS faad) set(FAAD_FOUND ON CACHE INTERNAL "") set(FAAD_EXTERNAL ON CACHE INTERNAL "") set(FAAD_INCLUDE_DIR "${install_dir}/include" CACHE INTERNAL "") @@ -332,7 +337,7 @@ if (NOT FFTW3F_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(fftw3f source_dir binary_dir) - set(FFTW3F_DEPENDS fftw3f PARENT_SCOPE) + set_global(FFTW3F_DEPENDS fftw3f) set(FFTW3F_FOUND ON CACHE INTERNAL "") set(FFTW3F_EXTERNAL ON CACHE INTERNAL "") set(FFTW3F_INCLUDE_DIRS "${source_dir}/api" "${binary_dir}" CACHE INTERNAL "") @@ -415,7 +420,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(x264 install_dir) - set(X264_DEPENDS x264 PARENT_SCOPE) + set_global(X264_DEPENDS x264) set(X264_PKG_CONFIG_DIR "${install_dir}/lib/pkgconfig") set(X264_FOUND ON CACHE INTERNAL "") set(X264_EXTERNAL ON CACHE INTERNAL "") @@ -433,7 +438,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(x265 install_dir) - set(X265_DEPENDS x265 PARENT_SCOPE) + set_global(X265_DEPENDS x265) set(X265_PKG_CONFIG_DIR "${install_dir}/lib/pkgconfig") set(X265_FOUND ON CACHE INTERNAL "") set(X265_EXTERNAL ON CACHE INTERNAL "") @@ -450,7 +455,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(fdk_aac install_dir) - set(FDK_AAC_DEPENDS fdk_aac PARENT_SCOPE) + set_global(FDK_AAC_DEPENDS fdk_aac) set(FDK_AAC_PKG_CONFIG_DIR "${install_dir}/lib/pkgconfig") set(FDK_AAC_FOUND ON CACHE INTERNAL "") set(FDK_AAC_EXTERNAL ON CACHE INTERNAL "") @@ -469,7 +474,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(mpg123 install_dir) - set(MPG123_DEPENDS mpg123 PARENT_SCOPE) + set_global(MPG123_DEPENDS mpg123) set(MPG123_PKG_CONFIG_DIR "${install_dir}/lib/pkgconfig") set(MPG123_FOUND ON CACHE INTERNAL "") set(MPG123_EXTERNAL ON CACHE INTERNAL "") @@ -489,7 +494,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(lame install_dir) - set(LAME_DEPENDS lame PARENT_SCOPE) + set_global(LAME_DEPENDS lame) # ffmpeg doesn't try to use pkg-config for lame, as it doesn't include a .pc file #set(LAME_PKG_CONFIG_DIR "${install_dir}/lib/pkgconfig") set(LAME_EXTRA_CFLAGS "-I${install_dir}/include") @@ -513,7 +518,7 @@ if (NOT FFMEG_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(ffmpeg install_dir) - set(FFMPEG_DEPENDS ffmpeg PARENT_SCOPE) + set_global(FFMPEG_DEPENDS ffmpeg) set(FFMPEG_INSTALL_DIR "${install_dir}") set(FFMPEG_FOUND ON CACHE INTERNAL "") set(FFMPEG_EXTERNAL ON CACHE INTERNAL "") @@ -545,7 +550,7 @@ if (NOT OpenCV_FOUND AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(opencv source_dir binary_dir) - set(OpenCV_DEPENDS opencv PARENT_SCOPE) + set_global(OpenCV_DEPENDS opencv) set(OpenCV_FOUND ON CACHE INTERNAL "") set(OpenCV_EXTERNAL ON CACHE INTERNAL "") set(OpenCV_INCLUDE_DIRS @@ -600,7 +605,7 @@ if ((NOT CODEC2_FOUND OR CODEC2_EXTERNAL) AND NOT USE_PRECOMPILED_LIBS) TEST_COMMAND "" ) ExternalProject_Get_Property(codec2 source_dir binary_dir) - set(CODEC2_DEPENDS codec2 PARENT_SCOPE) + set_global(CODEC2_DEPENDS codec2) set(CODEC2_FOUND ON CACHE INTERNAL "") set(CODEC2_EXTERNAL ON CACHE INTERNAL "") set(CODEC2_INCLUDE_DIR "${source_dir}/src" "${binary_dir}" CACHE INTERNAL "") @@ -641,7 +646,7 @@ if (NOT CM256CC_FOUND OR CM256CC_EXTERNAL) TEST_COMMAND "" ) ExternalProject_Get_Property(cm256cc source_dir binary_dir) - set(CM256CC_DEPENDS cm256cc PARENT_SCOPE) + set_global(CM256CC_DEPENDS cm256cc) set(CM256CC_FOUND ON CACHE INTERNAL "") set(CM256CC_EXTERNAL ON CACHE INTERNAL "") # we need cm256cc/library.h @@ -674,7 +679,7 @@ if ((NOT LIBDSDCC_FOUND OR LIBDSDCC_EXTERNAL) AND (NOT LIBMBE_FOUND OR LIBMBE_EX ) ExternalProject_Get_Property(mbelib source_dir binary_dir) set(USE_MBELIB ON) - set(DSDCC_DEPENDS mbelib PARENT_SCOPE) + set_global(DSDCC_DEPENDS mbelib) set(LIBMBE_FOUND ON CACHE INTERNAL "") set(LIBMBE_EXTERNAL ON CACHE INTERNAL "") set(LIBMBE_INCLUDE_DIR "${source_dir}" CACHE INTERNAL "") @@ -705,7 +710,7 @@ if (NOT LIBSERIALDV_FOUND OR LIBSERIALDV_EXTERNAL) TEST_COMMAND "" ) ExternalProject_Get_Property(serialdv source_dir binary_dir) - set(DSDCC_DEPENDS ${DSDCC_DEPENDS} serialdv PARENT_SCOPE) + set_global(DSDCC_DEPENDS ${DSDCC_DEPENDS} serialdv) set(LIBSERIALDV_FOUND ON CACHE INTERNAL "") set(LIBSERIALDV_EXTERNAL ON CACHE INTERNAL "") set(LIBSERIALDV_INCLUDE_DIR "${source_dir}" CACHE INTERNAL "") @@ -837,7 +842,7 @@ if (WIN32) TEST_COMMAND "" ) ExternalProject_Get_Property(pthreads4w source_dir binary_dir) - set(PTHREADS4W_DEPENDS pthreads4w PARENT_SCOPE) + set_global(PTHREADS4W_DEPENDS pthreads4w) set(PTHREADS4W_FOUND ON CACHE INTERNAL "") set(PTHREADS4W_EXTERNAL ON CACHE INTERNAL "") set(PTHREADS4W_INCLUDE_DIR "${source_dir}" CACHE INTERNAL "") @@ -894,7 +899,7 @@ if (ZLIB_FOUND AND FAAD_FOUND) ) endif(WIN32) ExternalProject_Get_Property(dab source_dir binary_dir) - set(DAB_DEPENDS dab PARENT_SCOPE) + set_global(DAB_DEPENDS dab) set(DAB_FOUND ON CACHE INTERNAL "") set(DAB_EXTERNAL ON CACHE INTERNAL "") set(DAB_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/dab/src/dab" CACHE INTERNAL "") @@ -1334,7 +1339,7 @@ if (WIN32 OR APPLE) ) endif () ExternalProject_Get_Property(libxml2 source_dir binary_dir) - set(LIBXML2_DEPENDS libxml2 PARENT_SCOPE) + set_global(LIBXML2_DEPENDS libxml2) set(LIBXML2_FOUND ON CACHE INTERNAL "") set(LIBXML2_EXTERNAL ON CACHE INTERNAL "") set(LIBXML2_INCLUDE_DIR "${source_dir}/include" CACHE INTERNAL "") From 8f0205c5516a2d316661e03717a9de752a4f93f2 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Fri, 27 May 2022 12:27:01 +0100 Subject: [PATCH 6/6] Fix hidapi for mac --- CMakeLists.txt | 3 +-- external/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 32ee35ff3..c9afd5942 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -398,6 +398,7 @@ else() find_package(Sgp4) find_package(AptDec) find_package(LibDAB) + find_package(HIDAPI) endif() if (LIBSIGMF_FOUND AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") @@ -448,8 +449,6 @@ if(ENABLE_USRP) find_package(UHD) endif() -find_package(HIDAPI) - if(ENABLE_FUNCUBE AND UNIX AND LIBUSB_FOUND AND HIDAPI_FOUND) add_subdirectory(fcdlib) add_subdirectory(fcdhid) diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index 46c5e0267..07cdbff27 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -252,7 +252,7 @@ if (NOT HIDAPI_FOUND AND NOT USE_PRECOMPILED_LIBS) set(HIDAPI_FOUND ON CACHE INTERNAL "") set(HIDAPI_EXTERNAL ON CACHE INTERNAL "") set(HIDAPI_ROOT_DIR "${install_dir}" CACHE INTERNAL "") - set(HIDAPI_INCLUDE_DIRS "${install_dir}/include" CACHE INTERNAL "") + set(HIDAPI_INCLUDE_DIRS "${install_dir}/include/hidapi" CACHE INTERNAL "") if (APPLE) set(HIDAPI_LIBRARIES "${install_dir}/lib/libhidapi${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${install_dir}/lib")