aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt5
-rw-r--r--cmake/modules/FindFlatBuffers.cmake27
-rw-r--r--cmake/modules/buildtools/FindFlatC.cmake88
-rw-r--r--cmake/scripts/windows/ArchSetup.cmake6
-rw-r--r--cmake/scripts/windowsstore/ArchSetup.cmake6
-rw-r--r--project/BuildDependencies/scripts/0_package.native-win32.list1
-rw-r--r--project/BuildDependencies/scripts/0_package.target-win10-arm.list1
-rw-r--r--project/BuildDependencies/scripts/0_package.target-win10-win32.list1
-rw-r--r--project/BuildDependencies/scripts/0_package.target-win10-x64.list1
-rw-r--r--project/BuildDependencies/scripts/0_package.target-win32.list1
-rw-r--r--project/BuildDependencies/scripts/0_package.target-x64.list1
-rw-r--r--tools/depends/native/Makefile2
-rw-r--r--tools/depends/target/Makefile1
-rw-r--r--xbmc/cores/RetroPlayer/messages/CMakeLists.txt4
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()