diff options
-rw-r--r-- | CMakeLists.txt | 5 | ||||
-rw-r--r-- | cmake/modules/FindFlatBuffers.cmake | 27 | ||||
-rw-r--r-- | cmake/modules/buildtools/FindFlatC.cmake | 88 | ||||
-rw-r--r-- | cmake/scripts/windows/ArchSetup.cmake | 6 | ||||
-rw-r--r-- | cmake/scripts/windowsstore/ArchSetup.cmake | 6 | ||||
-rw-r--r-- | project/BuildDependencies/scripts/0_package.native-win32.list | 1 | ||||
-rw-r--r-- | project/BuildDependencies/scripts/0_package.target-win10-arm.list | 1 | ||||
-rw-r--r-- | project/BuildDependencies/scripts/0_package.target-win10-win32.list | 1 | ||||
-rw-r--r-- | project/BuildDependencies/scripts/0_package.target-win10-x64.list | 1 | ||||
-rw-r--r-- | project/BuildDependencies/scripts/0_package.target-win32.list | 1 | ||||
-rw-r--r-- | project/BuildDependencies/scripts/0_package.target-x64.list | 1 | ||||
-rw-r--r-- | tools/depends/native/Makefile | 2 | ||||
-rw-r--r-- | tools/depends/target/Makefile | 1 | ||||
-rw-r--r-- | xbmc/cores/RetroPlayer/messages/CMakeLists.txt | 4 |
14 files changed, 118 insertions, 27 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 48ad59a81d..ba1fa9ce28 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,6 +62,7 @@ option(ENABLE_INTERNAL_CROSSGUID "Enable internal crossguid?" ON) # use ffmpeg from depends or system option(ENABLE_INTERNAL_FFMPEG "Enable internal ffmpeg?" OFF) option(ENABLE_INTERNAL_RapidJSON "Enable internal rapidjson?" ON) +cmake_dependent_option(ENABLE_INTERNAL_FLATBUFFERS "Enable internal flatbuffers?" OFF "DEFINED USE_INTERNAL_LIBS;NOT USE_INTERNAL_LIBS" ON) cmake_dependent_option(ENABLE_INTERNAL_TAGLIB "Enable internal taglib?" OFF "DEFINED USE_INTERNAL_LIBS;NOT USE_INTERNAL_LIBS" ON) # Internal Depends - supported on UNIX platforms @@ -69,7 +70,6 @@ if(UNIX) option(FFMPEG_PATH "Path to external ffmpeg?" "") option(ENABLE_INTERNAL_FMT "Enable internal fmt?" OFF) option(ENABLE_INTERNAL_FSTRCMP "Enable internal fstrcmp?" OFF) - option(ENABLE_INTERNAL_FLATBUFFERS "Enable internal flatbuffers?" OFF) option(ENABLE_INTERNAL_DAV1D "Enable internal dav1d?" OFF) option(ENABLE_INTERNAL_GTEST "Enable internal gtest?" OFF) option(ENABLE_INTERNAL_UDFREAD "Enable internal udfread?" OFF) @@ -138,7 +138,8 @@ foreach(depspec ${PLATFORM_REQUIRED_DEPS}) endforeach() # Required tools. Keep in alphabetical order please -set(required_buildtools JsonSchemaBuilder +set(required_buildtools FlatC + JsonSchemaBuilder TexturePacker ) diff --git a/cmake/modules/FindFlatBuffers.cmake b/cmake/modules/FindFlatBuffers.cmake index 3b01e5d379..4f4c8ab1d6 100644 --- a/cmake/modules/FindFlatBuffers.cmake +++ b/cmake/modules/FindFlatBuffers.cmake @@ -16,9 +16,6 @@ if(ENABLE_INTERNAL_FLATBUFFERS) SETUP_BUILD_VARS() - set(FLATBUFFERS_FLATC_EXECUTABLE ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/bin/flatc CACHE INTERNAL "FlatBuffer compiler") - set(FLATBUFFERS_INCLUDE_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include CACHE INTERNAL "FlatBuffer include dir") - # Override build type detection and always build as release set(FLATBUFFERS_BUILD_TYPE Release) @@ -26,38 +23,40 @@ if(ENABLE_INTERNAL_FLATBUFFERS) -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=ON -DFLATBUFFERS_BUILD_FLATLIB=OFF - -DFLATBUFFERS_BUILD_FLATC=ON + -DFLATBUFFERS_BUILD_FLATC=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF -DFLATBUFFERS_BUILD_GRPCTEST=OFF -DFLATBUFFERS_BUILD_SHAREDLIB=OFF "${EXTRA_ARGS}") - set(BUILD_BYPRODUCTS ${FLATBUFFERS_FLATC_EXECUTABLE}) + set(BUILD_BYPRODUCTS ${DEPENDS_PATH}/include/flatbuffers/flatbuffers.h) BUILD_DEP_TARGET() - - set_target_properties(${MODULE_LC} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${FLATBUFFERS_INCLUDE_DIR}) else() - find_program(FLATBUFFERS_FLATC_EXECUTABLE NAMES flatc) find_path(FLATBUFFERS_INCLUDE_DIR NAMES flatbuffers/flatbuffers.h) endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(FlatBuffers - REQUIRED_VARS FLATBUFFERS_FLATC_EXECUTABLE FLATBUFFERS_INCLUDE_DIR + REQUIRED_VARS FLATBUFFERS_INCLUDE_DIR VERSION_VAR FLATBUFFERS_VER) if(FLATBUFFERS_FOUND) set(FLATBUFFERS_MESSAGES_INCLUDE_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cores/RetroPlayer/messages CACHE INTERNAL "Generated FlatBuffer headers") set(FLATBUFFERS_INCLUDE_DIRS ${FLATBUFFERS_INCLUDE_DIR} ${FLATBUFFERS_MESSAGES_INCLUDE_DIR}) - if(NOT TARGET flatbuffers) - add_library(flatbuffers UNKNOWN IMPORTED) - set_target_properties(flatbuffers PROPERTIES + if(NOT TARGET flatbuffers::flatbuffers) + add_library(flatbuffers::flatbuffers UNKNOWN IMPORTED) + set_target_properties(flatbuffers::flatbuffers PROPERTIES FOLDER "External Projects" INTERFACE_INCLUDE_DIRECTORIES ${FLATBUFFERS_INCLUDE_DIR}) endif() - set_property(GLOBAL APPEND PROPERTY INTERNAL_DEPS_PROP flatbuffers) + add_dependencies(flatbuffers::flatbuffers flatbuffers::flatc) + + if(TARGET flatbuffers) + add_dependencies(flatbuffers::flatbuffers flatbuffers) + endif() + set_property(GLOBAL APPEND PROPERTY INTERNAL_DEPS_PROP flatbuffers::flatbuffers) endif() -mark_as_advanced(FLATBUFFERS_FLATC_EXECUTABLE FLATBUFFERS_INCLUDE_DIR) +mark_as_advanced(FLATBUFFERS_INCLUDE_DIR) diff --git a/cmake/modules/buildtools/FindFlatC.cmake b/cmake/modules/buildtools/FindFlatC.cmake new file mode 100644 index 0000000000..693d1db4f2 --- /dev/null +++ b/cmake/modules/buildtools/FindFlatC.cmake @@ -0,0 +1,88 @@ +# FindFlatC +# -------- +# Find the FlatBuffers schema compiler +# +# This will define the following variables: +# +# FLATBUFFERS_FOUND - system has FlatBuffers compiler and headers +# FLATBUFFERS_FLATC_EXECUTABLE - the flatc compiler executable +# +# and the following imported targets: +# +# flatbuffers::flatc - The FlatC compiler + +include(cmake/scripts/common/ModuleHelpers.cmake) + +set(MODULE_LC flatbuffers) + +SETUP_BUILD_VARS() + +# Check for existing FLATC. +find_program(FLATBUFFERS_FLATC_EXECUTABLE NAMES flatc + HINTS ${NATIVEPREFIX}/bin) + +if(NOT FLATBUFFERS_FLATC_EXECUTABLE) + + # Override build type detection and always build as release + set(FLATBUFFERS_BUILD_TYPE Release) + + if(NATIVEPREFIX) + set(INSTALL_DIR "${NATIVEPREFIX}/bin") + set(FLATBUFFERS_INSTALL_PREFIX ${NATIVEPREFIX}) + else() + set(INSTALL_DIR "${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/bin") + set(FLATBUFFERS_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}) + endif() + + set(CMAKE_ARGS -DFLATBUFFERS_CODE_COVERAGE=OFF + -DFLATBUFFERS_BUILD_TESTS=OFF + -DFLATBUFFERS_INSTALL=ON + -DFLATBUFFERS_BUILD_FLATLIB=OFF + -DFLATBUFFERS_BUILD_FLATC=ON + -DFLATBUFFERS_BUILD_FLATHASH=OFF + -DFLATBUFFERS_BUILD_GRPCTEST=OFF + -DFLATBUFFERS_BUILD_SHAREDLIB=OFF) + + if(CMAKE_GENERATOR STREQUAL Xcode) + set(FLATBUFFERS_GENERATOR CMAKE_GENERATOR "Unix Makefiles") + endif() + + # Set host build info for buildtool + if(EXISTS "${NATIVEPREFIX}/share/Toolchain-Native.cmake") + set(FLATBUFFERS_TOOLCHAIN_FILE "${NATIVEPREFIX}/share/Toolchain-Native.cmake") + elseif(WIN32 OR WINDOWS_STORE) + set(FLATBUFFERS_GENERATOR_PLATFORM CMAKE_GENERATOR_PLATFORM ${HOSTTOOLSET}) + set(FLATBUFFERS_GENERATOR CMAKE_GENERATOR "${CMAKE_GENERATOR}") + endif() + + set(FLATBUFFERS_FLATC_EXECUTABLE ${INSTALL_DIR}/flatc CACHE INTERNAL "FlatBuffer compiler") + + set(BUILD_NAME flatc) + set(BUILD_BYPRODUCTS ${FLATBUFFERS_FLATC_EXECUTABLE}) + + BUILD_DEP_TARGET() +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(FlatC + REQUIRED_VARS FLATBUFFERS_FLATC_EXECUTABLE + VERSION_VAR FLATBUFFERS_VER) + +if(FLATC_FOUND) + + if(NOT TARGET flatbuffers::flatc) + add_library(flatbuffers::flatc UNKNOWN IMPORTED) + set_target_properties(flatbuffers::flatc PROPERTIES + FOLDER "External Projects") + endif() + + if(TARGET flatc) + add_dependencies(flatbuffers::flatc flatc) + endif() +else() + if(FLATC_FIND_REQUIRED) + message(FATAL_ERROR "Flatc compiler not found.") + endif() +endif() + +mark_as_advanced(FLATBUFFERS_FLATC_EXECUTABLE) diff --git a/cmake/scripts/windows/ArchSetup.cmake b/cmake/scripts/windows/ArchSetup.cmake index 0c432a2daf..29f9f1c731 100644 --- a/cmake/scripts/windows/ArchSetup.cmake +++ b/cmake/scripts/windows/ArchSetup.cmake @@ -7,6 +7,12 @@ if(CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION VERSION_LESS VS_MINIMUM_SDK_VERSION) "INFO: Windows SDKs can be installed from the Visual Studio installer.") endif() +# -------- Host Settings --------- + +set(_gentoolset ${CMAKE_GENERATOR_TOOLSET}) +string(REPLACE "host=" "" HOSTTOOLSET ${_gentoolset}) +unset(_gentoolset) + # -------- Architecture settings --------- if(CMAKE_SIZEOF_VOID_P EQUAL 4) diff --git a/cmake/scripts/windowsstore/ArchSetup.cmake b/cmake/scripts/windowsstore/ArchSetup.cmake index f0d6844e99..209bb9f56b 100644 --- a/cmake/scripts/windowsstore/ArchSetup.cmake +++ b/cmake/scripts/windowsstore/ArchSetup.cmake @@ -7,6 +7,12 @@ if(CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION VERSION_LESS VS_MINIMUM_SDK_VERSION) "INFO: Windows SDKs can be installed from the Visual Studio installer.") endif() +# -------- Host Settings --------- + +set(_gentoolset ${CMAKE_GENERATOR_TOOLSET}) +string(REPLACE "host=" "" HOSTTOOLSET ${_gentoolset}) +unset(_gentoolset) + # -------- Architecture settings --------- check_symbol_exists(_X86_ "Windows.h" _X86_) diff --git a/project/BuildDependencies/scripts/0_package.native-win32.list b/project/BuildDependencies/scripts/0_package.native-win32.list index 1816000f50..4e30e1dea2 100644 --- a/project/BuildDependencies/scripts/0_package.native-win32.list +++ b/project/BuildDependencies/scripts/0_package.native-win32.list @@ -7,7 +7,6 @@ ; -> ... ;PLEASE KEEP THIS LIST IN ALPHABETICAL ORDER! doxygen-1.8.2-win32.7z -flatc-1.11.0-win32-v141-20200105.7z JsonSchemaBuilder-win32-v141-20200105.7z swig-4.0.1-win32-v141-20200105.7z TexturePacker-win32-v141-20200105.7z diff --git a/project/BuildDependencies/scripts/0_package.target-win10-arm.list b/project/BuildDependencies/scripts/0_package.target-win10-arm.list index 204d13190a..4b5346d8c4 100644 --- a/project/BuildDependencies/scripts/0_package.target-win10-arm.list +++ b/project/BuildDependencies/scripts/0_package.target-win10-arm.list @@ -8,7 +8,6 @@ ;PLEASE KEEP THIS LIST IN ALPHABETICAL ORDER! curl-7.67.0-win10-arm-v141-20200105.7z dav1d-0.8.2-win10-arm-v142-20210314.7z -flatbuffers-1.11.0-20200105.7z fmt-6.1.2-win10-arm-v141-20200105.7z freetype-2.10.1-win10-arm-v141-20200105.7z fstrcmp-0.7-win10-arm-v141-20200105.7z diff --git a/project/BuildDependencies/scripts/0_package.target-win10-win32.list b/project/BuildDependencies/scripts/0_package.target-win10-win32.list index 60aea4af85..bba7333921 100644 --- a/project/BuildDependencies/scripts/0_package.target-win10-win32.list +++ b/project/BuildDependencies/scripts/0_package.target-win10-win32.list @@ -8,7 +8,6 @@ ;PLEASE KEEP THIS LIST IN ALPHABETICAL ORDER! curl-7.67.0-win10-win32-v141-20200105.7z dav1d-0.8.2-win10-win32-v142-20210314.7z -flatbuffers-1.11.0-20200105.7z fmt-6.1.2-win10-win32-v141-20200105.7z freetype-2.10.1-win10-win32-v141-20200105.7z fstrcmp-0.7-win10-win32-v141-20200105.7z diff --git a/project/BuildDependencies/scripts/0_package.target-win10-x64.list b/project/BuildDependencies/scripts/0_package.target-win10-x64.list index e07d3b9296..bf306be618 100644 --- a/project/BuildDependencies/scripts/0_package.target-win10-x64.list +++ b/project/BuildDependencies/scripts/0_package.target-win10-x64.list @@ -8,7 +8,6 @@ ;PLEASE KEEP THIS LIST IN ALPHABETICAL ORDER! curl-7.67.0-win10-x64-v141-20200105.7z dav1d-0.8.2-win10-x64-v142-20210314.7z -flatbuffers-1.11.0-20200105.7z fmt-6.1.2-win10-x64-v141-20200105.7z freetype-2.10.1-win10-x64-v141-20200105.7z fstrcmp-0.7-win10-x64-v141-20200105.7z diff --git a/project/BuildDependencies/scripts/0_package.target-win32.list b/project/BuildDependencies/scripts/0_package.target-win32.list index 7a2303b61d..6c2d6a10ff 100644 --- a/project/BuildDependencies/scripts/0_package.target-win32.list +++ b/project/BuildDependencies/scripts/0_package.target-win32.list @@ -10,7 +10,6 @@ curl-7.67.0-win32-v141-20200105.7z dav1d-0.8.2-win32-v142-20210314.7z detours-64ec13-win32-v141-20200105.7z dnssd-878.260.1-win32-v141-20200105.7z -flatbuffers-1.11.0-20200105.7z fmt-6.1.2-win32-v141-20200105.7z freetype-2.10.1-win32-v141-20200105.7z fstrcmp-0.7-win32-v141-20200105.7z diff --git a/project/BuildDependencies/scripts/0_package.target-x64.list b/project/BuildDependencies/scripts/0_package.target-x64.list index 2f8e1e674a..e87a85c7cb 100644 --- a/project/BuildDependencies/scripts/0_package.target-x64.list +++ b/project/BuildDependencies/scripts/0_package.target-x64.list @@ -10,7 +10,6 @@ curl-7.67.0-x64-v141-20200105.7z dav1d-0.8.2-x64-v142-20210314.7z detours-64ec13-x64-v141-20200105.7z dnssd-878.260.1-x64-v141-20200105.7z -flatbuffers-1.11.0-20200105.7z fmt-6.1.2-x64-v141-20200105.7z freetype-2.10.1-x64-v141-20200105.7z fstrcmp-0.7-x64-v141-20200105.7z diff --git a/tools/depends/native/Makefile b/tools/depends/native/Makefile index 8967d1c775..1f7526474b 100644 --- a/tools/depends/native/Makefile +++ b/tools/depends/native/Makefile @@ -10,7 +10,6 @@ NATIVE= \ autoconf-archive \ automake \ cmake \ - flatbuffers \ gas-preprocessor \ gettext \ giflib \ @@ -62,7 +61,6 @@ autoconf-archive: autoconf autoconf: m4 automake: autoconf dpkg: automake gettext libtool pkg-config tar -flatbuffers: cmake heimdal: libtool JsonSchemaBuilder: automake libjpeg-turbo: cmake nasm diff --git a/tools/depends/target/Makefile b/tools/depends/target/Makefile index 0a9e2f5dfc..274355d8bb 100644 --- a/tools/depends/target/Makefile +++ b/tools/depends/target/Makefile @@ -11,7 +11,6 @@ DEPENDS = \ dav1d \ expat \ ffmpeg \ - flatbuffers \ fmt \ fontconfig \ freetype2 \ diff --git a/xbmc/cores/RetroPlayer/messages/CMakeLists.txt b/xbmc/cores/RetroPlayer/messages/CMakeLists.txt index 639722ca01..2ec9eaf9b9 100644 --- a/xbmc/cores/RetroPlayer/messages/CMakeLists.txt +++ b/xbmc/cores/RetroPlayer/messages/CMakeLists.txt @@ -18,6 +18,6 @@ set_target_properties(retroplayer_messages PROPERTIES FOLDER "Generated Messages INCLUDE_DIRECTORIES ${CMAKE_CURRENT_BINARY_DIR} SOURCES ${FLATC_OUTPUTS}) -if(TARGET flatbuffers) - add_dependencies(retroplayer_messages flatbuffers) +if(TARGET flatbuffers::flatbuffers) + add_dependencies(retroplayer_messages flatbuffers::flatbuffers) endif() |