From be933ef2241d79558f91796cc5b3a161f72ebf9c Mon Sep 17 00:00:00 2001 From: manuel Date: Mon, 19 Oct 2020 00:52:24 +0200 Subject: sync with upstream --- cmake/modules/FindClangTidy.cmake | 26 +++++++++++++++ cmake/modules/FindCppcheck.cmake | 32 ++++++++++++++++++ cmake/modules/FindEGL.cmake | 8 ++--- cmake/modules/FindIncludeWhatYouUse.cmake | 26 +++++++++++++++ cmake/modules/FindLibDRM.cmake | 2 +- cmake/modules/FindLibDvd.cmake | 15 ++++++++- cmake/modules/FindMMAL.cmake | 55 ------------------------------- cmake/modules/FindOpenGLES.cmake | 8 ++--- cmake/modules/FindPlist.cmake | 4 +-- 9 files changed, 105 insertions(+), 71 deletions(-) create mode 100644 cmake/modules/FindClangTidy.cmake create mode 100644 cmake/modules/FindCppcheck.cmake create mode 100644 cmake/modules/FindIncludeWhatYouUse.cmake delete mode 100644 cmake/modules/FindMMAL.cmake (limited to 'cmake/modules') diff --git a/cmake/modules/FindClangTidy.cmake b/cmake/modules/FindClangTidy.cmake new file mode 100644 index 0000000..6ea614d --- /dev/null +++ b/cmake/modules/FindClangTidy.cmake @@ -0,0 +1,26 @@ +#.rst: +# FindClangTidy +# ------------- +# Finds clang-tidy and sets it up to run along with the compiler for C and CXX. + +find_program(CLANG_TIDY_EXECUTABLE clang-tidy) + +if(CLANG_TIDY_EXECUTABLE) + execute_process(COMMAND "${CLANG_TIDY_EXECUTABLE}" --version + OUTPUT_VARIABLE CLANG_TIDY_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REGEX MATCH "[^\n]* version [^\n]*" CLANG_TIDY_VERSION "${CLANG_TIDY_VERSION}") + string(REGEX REPLACE ".* version (.*)" "\\1" CLANG_TIDY_VERSION "${CLANG_TIDY_VERSION}") +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(ClangTidy REQUIRED_VARS CLANG_TIDY_EXECUTABLE + VERSION_VAR CLANG_TIDY_VERSION) + +if(CLANGTIDY_FOUND) + # Supports Unix Makefiles and Ninja + set(CMAKE_C_CLANG_TIDY "${CLANG_TIDY_EXECUTABLE}" PARENT_SCOPE) + set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_EXECUTABLE}" PARENT_SCOPE) +endif() + +mark_as_advanced(CLANG_TIDY_EXECUTABLE) diff --git a/cmake/modules/FindCppcheck.cmake b/cmake/modules/FindCppcheck.cmake new file mode 100644 index 0000000..d3b6e84 --- /dev/null +++ b/cmake/modules/FindCppcheck.cmake @@ -0,0 +1,32 @@ +#.rst: +# FindCppcheck +# ------------ +# Finds cppcheck and sets it up to run along with the compiler for C and CXX. + +find_program(CPPCHECK_EXECUTABLE cppcheck) + +if(CPPCHECK_EXECUTABLE) + execute_process(COMMAND "${CPPCHECK_EXECUTABLE}" --version + OUTPUT_VARIABLE CPPCHECK_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REGEX REPLACE "Cppcheck (.*)" "\\1" CPPCHECK_VERSION "${CPPCHECK_VERSION}") +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Cppcheck REQUIRED_VARS CPPCHECK_EXECUTABLE + VERSION_VAR CPPCHECK_VERSION) + +if(CPPCHECK_FOUND) + # CMake < 3.16 treats Objective-C (OBJC) files as C files and Objective-C++ (OBJCXX) files as C++ files, + # but cppcheck doesn't support Objective-C and Objective-C++. + # CMake >= 3.16 added support for Objective-C and Objective-C++ language, + # but doesn't support OBJC and OBJCXX for _CLANG_TIDY. + file(WRITE "${CMAKE_BINARY_DIR}/cppcheck" "case \"$@\" in *.m|*.mm) exit 0; esac\nexec \"${CPPCHECK_EXECUTABLE}\" --quiet --relative-paths=\"${CMAKE_SOURCE_DIR}\" \"$@\"\n") + execute_process(COMMAND chmod +x "${CMAKE_BINARY_DIR}/cppcheck") + + # Supports Unix Makefiles and Ninja + set(CMAKE_C_CPPCHECK "${CMAKE_BINARY_DIR}/cppcheck" PARENT_SCOPE) + set(CMAKE_CXX_CPPCHECK "${CMAKE_BINARY_DIR}/cppcheck" PARENT_SCOPE) +endif() + +mark_as_advanced(CPPCHECK_EXECUTABLE) diff --git a/cmake/modules/FindEGL.cmake b/cmake/modules/FindEGL.cmake index 0b73eb8..b00fe08 100644 --- a/cmake/modules/FindEGL.cmake +++ b/cmake/modules/FindEGL.cmake @@ -14,18 +14,14 @@ # # EGL::EGL - The EGL library -if(CORE_PLATFORM_NAME_LC STREQUAL rbpi) - set(_brcmprefix brcm) -endif() - if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_EGL ${_brcmprefix}egl QUIET) + pkg_check_modules(PC_EGL egl QUIET) endif() find_path(EGL_INCLUDE_DIR EGL/egl.h PATHS ${PC_EGL_INCLUDEDIR}) -find_library(EGL_LIBRARY NAMES ${_brcmprefix}EGL egl +find_library(EGL_LIBRARY NAMES EGL egl PATHS ${PC_EGL_LIBDIR}) set(EGL_VERSION ${PC_EGL_VERSION}) diff --git a/cmake/modules/FindIncludeWhatYouUse.cmake b/cmake/modules/FindIncludeWhatYouUse.cmake new file mode 100644 index 0000000..b22225a --- /dev/null +++ b/cmake/modules/FindIncludeWhatYouUse.cmake @@ -0,0 +1,26 @@ +#.rst: +# FindIncludeWhatYouUse +# --------------------- +# Finds include-what-you-use and sets it up to run along with the compiler for C and CXX. + +find_program(IWYU_EXECUTABLE NAMES include-what-you-use iwyu) + +if(IWYU_EXECUTABLE) + execute_process(COMMAND "${IWYU_EXECUTABLE}" --version + OUTPUT_VARIABLE IWYU_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REGEX MATCH "[^\n]*include-what-you-use [^\n]*" IWYU_VERSION "${IWYU_VERSION}") + string(REGEX REPLACE "include-what-you-use ([^ \n\r\t]+).*" "\\1" IWYU_VERSION "${IWYU_VERSION}") +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(IncludeWhatYouUse REQUIRED_VARS IWYU_EXECUTABLE + VERSION_VAR IWYU_VERSION) + +if(INCLUDEWHATYOUUSE_FOUND) + # Supports Unix Makefiles and Ninja + set(CMAKE_C_INCLUDE_WHAT_YOU_USE "${IWYU_EXECUTABLE}" PARENT_SCOPE) + set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE "${IWYU_EXECUTABLE}" PARENT_SCOPE) +endif() + +mark_as_advanced(IWYU_EXECUTABLE) diff --git a/cmake/modules/FindLibDRM.cmake b/cmake/modules/FindLibDRM.cmake index 0d680f2..866565d 100644 --- a/cmake/modules/FindLibDRM.cmake +++ b/cmake/modules/FindLibDRM.cmake @@ -15,7 +15,7 @@ # LibDRM::LibDRM - The LibDRM library if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_LIBDRM libdrm>=2.4.82 QUIET) + pkg_check_modules(PC_LIBDRM libdrm>=2.4.95 QUIET) endif() find_path(LIBDRM_INCLUDE_DIR NAMES drm.h diff --git a/cmake/modules/FindLibDvd.cmake b/cmake/modules/FindLibDvd.cmake index 44e7e92..58a7aab 100644 --- a/cmake/modules/FindLibDvd.cmake +++ b/cmake/modules/FindLibDvd.cmake @@ -96,6 +96,16 @@ else() set(LIBDVD_ADDITIONAL_ARGS "-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}" "-DCMAKE_SYSTEM_VERSION=${CMAKE_SYSTEM_VERSION}") endif() + set(MAKE_COMMAND $(MAKE)) + if(CMAKE_GENERATOR STREQUAL Ninja) + set(MAKE_COMMAND make) + include(ProcessorCount) + ProcessorCount(N) + if(NOT N EQUAL 0) + set(MAKE_COMMAND make -j${N}) + endif() + endif() + if(ENABLE_DVDCSS) if(NOT CORE_SYSTEM_NAME MATCHES windows) set(DVDCSS_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdcss.a) @@ -115,6 +125,7 @@ else() "CC=${CMAKE_C_COMPILER}" "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}" "LDFLAGS=${CMAKE_LD_FLAGS}" + BUILD_COMMAND ${MAKE_COMMAND} BUILD_BYPRODUCTS ${DVDCSS_LIBRARY}) ExternalProject_Add_Step(dvdcss autoreconf DEPENDEES download update patch @@ -156,7 +167,8 @@ else() "CC=${CMAKE_C_COMPILER}" "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}" "LDFLAGS=${CMAKE_LD_FLAGS}" - BUILD_BYPRODUCTS ${DVDREAD_LIBRARY}) + BUILD_COMMAND ${MAKE_COMMAND} + BUILD_BYPRODUCTS ${DVDREAD_LIBRARY}) ExternalProject_Add_Step(dvdread autoreconf DEPENDEES download update patch DEPENDERS configure @@ -203,6 +215,7 @@ else() "DVDREAD_CFLAGS=${DVDREAD_CFLAGS}" "DVDREAD_LIBS=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.la" "LIBS=${DVDNAV_LIBS}" + BUILD_COMMAND ${MAKE_COMMAND} BUILD_BYPRODUCTS ${DVDNAV_LIBRARY}) ExternalProject_Add_Step(dvdnav autoreconf DEPENDEES download update patch diff --git a/cmake/modules/FindMMAL.cmake b/cmake/modules/FindMMAL.cmake deleted file mode 100644 index 0b5f556..0000000 --- a/cmake/modules/FindMMAL.cmake +++ /dev/null @@ -1,55 +0,0 @@ -# - Try to find MMAL -# Once done this will define -# -# MMAL_FOUND - system has MMAL -# MMAL_INCLUDE_DIRS - the MMAL include directory -# MMAL_LIBRARIES - The MMAL libraries - -if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_MMAL mmal QUIET) -endif() - - -find_path(MMAL_INCLUDE_DIR NAMES interface/mmal/mmal.h PATHS ${PC_MMAL_INCLUDEDIR}) -find_library(MMAL_LIBRARY NAMES mmal libmmal PATHS ${PC_MMAL_LIBDIR}) -find_library(MMALCORE_LIBRARY NAMES mmal_core libmmal_core PATHS ${PC_MMAL_LIBDIR}) -find_library(MMALUTIL_LIBRARY NAMES mmal_util libmmal_util PATHS ${PC_MMAL_LIBDIR}) -find_library(MMALCLIENT_LIBRARY NAMES mmal_vc_client libmmal_vc_client PATHS ${PC_MMAL_LIBDIR}) -find_library(MMALCOMPONENT_LIBRARY NAMES mmal_components libmmal_components PATHS ${PC_MMAL_LIBDIR}) -find_library(BCM_LIBRARY NAMES bcm_host libbcm_host PATHS ${PC_MMAL_LIBDIR}) -find_library(VCHIQ_LIBRARY NAMES vchiq_arm libvchiq_arm PATHS ${PC_MMAL_LIBDIR}) -find_library(VCHOSTIF_LIBRARY NAMES vchostif libvchostif PATHS ${PC_MMAL_LIBDIR}) -find_library(VCILCS_LIBRARY NAMES vcilcs libvcilcs PATHS ${PC_MMAL_LIBDIR}) -find_library(VCOS_LIBRARY NAMES vcos libvcos PATHS ${PC_MMAL_LIBDIR}) -find_library(VCSM_LIBRARY NAMES vcsm libvcsm PATHS ${PC_MMAL_LIBDIR}) -find_library(CONTAINER_LIBRARY NAMES containers libcontainers PATHS ${PC_MMAL_LIBDIR}) - - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(MMAL REQUIRED_VARS MMAL_INCLUDE_DIR - MMAL_LIBRARY MMALCORE_LIBRARY MMALUTIL_LIBRARY - MMALCLIENT_LIBRARY MMALCOMPONENT_LIBRARY BCM_LIBRARY - VCHIQ_LIBRARY VCOS_LIBRARY VCSM_LIBRARY VCHOSTIF_LIBRARY - VCILCS_LIBRARY CONTAINER_LIBRARY) - - -if(MMAL_FOUND) - set(MMAL_INCLUDE_DIRS ${MMAL_INCLUDE_DIR}) - set(MMAL_LIBRARIES ${MMAL_LIBRARY} ${MMALCORE_LIBRARY} ${MMALUTIL_LIBRARY} - ${MMALCLIENT_LIBRARY} ${MMALCOMPONENT_LIBRARY} - ${BCM_LIBRARY} ${VCHIQ_LIBRARY} ${VCOS_LIBRARY} ${VCSM_LIBRARY} - ${VCHOSTIF_LIBRARY} ${VCILCS_LIBRARY} ${CONTAINER_LIBRARY} - CACHE STRING "mmal libraries" FORCE) - list(APPEND MMAL_DEFINITIONS -DHAVE_MMAL=1 -DHAS_MMAL=1) - - if(NOT TARGET MMAL::MMAL) - add_library(MMAL::MMAL UNKNOWN IMPORTED) - set_target_properties(MMAL::MMAL PROPERTIES - IMPORTED_LOCATION "${MMAL_LIBRARIES}" - INTERFACE_INCLUDE_DIRECTORIES "${MMAL_INCLUDE_DIR}") - endif() -endif() - -mark_as_advanced(MMAL_INCLUDE_DIRS MMAL_LIBRARIES MMAL_DEFINITIONS - MMAL_LIBRARY MMALCORE_LIBRARY MMALUTIL_LIBRARY MMALCLIENT_LIBRARY MMALCOMPONENT_LIBRARY BCM_LIBRARY - VCHIQ_LIBRARY VCOS_LIBRARY VCSM_LIBRARY VCHOSTIF_LIBRARY VCILCS_LIBRARY CONTAINER_LIBRARY) diff --git a/cmake/modules/FindOpenGLES.cmake b/cmake/modules/FindOpenGLES.cmake index 43a1367..3dbaa44 100644 --- a/cmake/modules/FindOpenGLES.cmake +++ b/cmake/modules/FindOpenGLES.cmake @@ -10,18 +10,14 @@ # OPENGLES_LIBRARIES - the OpenGLES libraries # OPENGLES_DEFINITIONS - the OpenGLES definitions -if(CORE_PLATFORM_NAME_LC STREQUAL rbpi) - set(_brcmprefix brcm) -endif() - if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_OPENGLES ${_brcmprefix}glesv2 QUIET) + pkg_check_modules(PC_OPENGLES glesv2 QUIET) endif() if(NOT CORE_SYSTEM_NAME STREQUAL darwin_embedded) find_path(OPENGLES_INCLUDE_DIR GLES2/gl2.h PATHS ${PC_OPENGLES_INCLUDEDIR}) - find_library(OPENGLES_gl_LIBRARY NAMES ${_brcmprefix}GLESv2 + find_library(OPENGLES_gl_LIBRARY NAMES GLESv2 PATHS ${PC_OPENGLES_LIBDIR}) else() find_library(OPENGLES_gl_LIBRARY NAMES OpenGLES diff --git a/cmake/modules/FindPlist.cmake b/cmake/modules/FindPlist.cmake index 2c86b74..8f9b2d6 100644 --- a/cmake/modules/FindPlist.cmake +++ b/cmake/modules/FindPlist.cmake @@ -15,7 +15,7 @@ # Plist::Plist - The Plist library if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_PLIST libplist QUIET) + pkg_search_module(PC_PLIST libplist-2.0 libplist QUIET) endif() find_path(PLIST_INCLUDE_DIR plist/plist.h @@ -23,7 +23,7 @@ find_path(PLIST_INCLUDE_DIR plist/plist.h set(PLIST_VERSION ${PC_PLIST_VERSION}) -find_library(PLIST_LIBRARY NAMES plist libplist +find_library(PLIST_LIBRARY NAMES plist-2.0 plist libplist-2.0 libplist PATHS ${PC_PLIST_LIBDIR}) include(FindPackageHandleStandardArgs) -- cgit v1.2.3