From 4c3251ec645c8b71820dab7e51e612e5919d4e75 Mon Sep 17 00:00:00 2001 From: manuel Date: Sun, 23 Jul 2017 16:59:43 +0200 Subject: sync with upstream --- cmake/scripts/android/Install.cmake | 5 +++-- cmake/scripts/common/AddonHelpers.cmake | 15 +++++++++++--- cmake/scripts/common/ArchSetup.cmake | 3 --- cmake/scripts/common/Macros.cmake | 10 +++++----- cmake/scripts/common/Platform.cmake | 32 ++++++++++++++++++++++++++++++ cmake/scripts/common/PrepareEnv.cmake | 2 +- cmake/scripts/linux/ArchSetup.cmake | 21 ++++++++++++++++++-- cmake/scripts/linux/Install.cmake | 5 +++-- cmake/scripts/rbpi/ArchSetup.cmake | 35 --------------------------------- cmake/scripts/rbpi/ExtraTargets.cmake | 1 - cmake/scripts/rbpi/Install.cmake | 1 - cmake/scripts/rbpi/Macros.cmake | 1 - cmake/scripts/rbpi/PathSetup.cmake | 1 - cmake/scripts/windows/ArchSetup.cmake | 14 +++++-------- 14 files changed, 80 insertions(+), 66 deletions(-) create mode 100644 cmake/scripts/common/Platform.cmake delete mode 100644 cmake/scripts/rbpi/ArchSetup.cmake delete mode 120000 cmake/scripts/rbpi/ExtraTargets.cmake delete mode 120000 cmake/scripts/rbpi/Install.cmake delete mode 120000 cmake/scripts/rbpi/Macros.cmake delete mode 120000 cmake/scripts/rbpi/PathSetup.cmake (limited to 'cmake/scripts') diff --git a/cmake/scripts/android/Install.cmake b/cmake/scripts/android/Install.cmake index 0ab7dbd..4065fc3 100644 --- a/cmake/scripts/android/Install.cmake +++ b/cmake/scripts/android/Install.cmake @@ -41,13 +41,13 @@ set(package_files strings.xml src/org/xbmc/kodi/XBMCInputDeviceListener.java src/org/xbmc/kodi/XBMCJsonRPC.java src/org/xbmc/kodi/XBMCMediaContentProvider.java - src/org/xbmc/kodi/XBMCOnAudioFocusChangeListener.java - src/org/xbmc/kodi/XBMCOnFrameAvailableListener.java src/org/xbmc/kodi/XBMCRecommendationBuilder.java src/org/xbmc/kodi/XBMCSearchableActivity.java src/org/xbmc/kodi/XBMCSettingsContentObserver.java src/org/xbmc/kodi/XBMCProperties.java src/org/xbmc/kodi/XBMCVideoView.java + src/org/xbmc/kodi/interfaces/XBMCAudioManagerOnAudioFocusChangeListener.java + src/org/xbmc/kodi/interfaces/XBMCSurfaceTextureOnFrameAvailableListener.java ) foreach(file IN LISTS package_files) configure_file(${CMAKE_SOURCE_DIR}/tools/android/packaging/xbmc/${file}.in @@ -121,6 +121,7 @@ foreach(target apk obb apk-unsigned apk-obb apk-obb-unsigned apk-noobb apk-clean CPU=${CPU} ARCH=${ARCH} PREFIX=${prefix} + DEPENDS_PATH=${DEPENDS_PATH} NDKROOT=${NDKROOT} SDKROOT=${SDKROOT} SDK_PLATFORM=${SDK_PLATFORM} diff --git a/cmake/scripts/common/AddonHelpers.cmake b/cmake/scripts/common/AddonHelpers.cmake index 8772057..abb79ff 100644 --- a/cmake/scripts/common/AddonHelpers.cmake +++ b/cmake/scripts/common/AddonHelpers.cmake @@ -228,7 +228,7 @@ macro (build_addon target prefix libs) set(CPACK_COMPONENTS_IGNORE_GROUPS 1) list(APPEND CPACK_COMPONENTS_ALL ${target}-${${prefix}_VERSION}) # Pack files together to create an archive - install(DIRECTORY ${target} DESTINATION ./ COMPONENT ${target}-${${prefix}_VERSION} PATTERN "xml.in" EXCLUDE) + install(DIRECTORY ${target} DESTINATION ./ COMPONENT ${target}-${${prefix}_VERSION} PATTERN "*.xml.in" EXCLUDE) if(WIN32) if(NOT CPACK_PACKAGE_DIRECTORY) # determine the temporary path @@ -266,6 +266,9 @@ macro (build_addon target prefix libs) if(${prefix}_CUSTOM_DATA) install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${target}/resources) endif() + if(${prefix}_ADDITIONAL_BINARY) + install(FILES ${${prefix}_ADDITIONAL_BINARY} DESTINATION ${target}) + endif() else() # NOT WIN32 if(NOT CPACK_PACKAGE_DIRECTORY) set(CPACK_PACKAGE_DIRECTORY ${CMAKE_BINARY_DIR}) @@ -281,10 +284,13 @@ macro (build_addon target prefix libs) if(${prefix}_CUSTOM_DATA) install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${target}/resources) endif() + if(${prefix}_ADDITIONAL_BINARY) + install(FILES ${${prefix}_ADDITIONAL_BINARY} DESTINATION ${target}) + endif() endif() add_cpack_workaround(${target} ${${prefix}_VERSION} ${ext}) else() - if(CORE_SYSTEM_NAME STREQUAL linux OR CORE_SYSTEM_NAME STREQUAL rbpi OR CORE_SYSTEM_NAME STREQUAL freebsd) + if(CORE_SYSTEM_NAME STREQUAL linux OR CORE_SYSTEM_NAME STREQUAL freebsd) if(NOT OVERRIDE_PATHS) if(CMAKE_INSTALL_PREFIX AND NOT CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND NOT CMAKE_INSTALL_PREFIX STREQUAL "${${APP_NAME_UC}_PREFIX}") message(WARNING "CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} differs from ${APP_NAME} prefix, changing to ${${APP_NAME_UC}_PREFIX}. Please pass -DOVERRIDE_PATHS=1 to skip this check") @@ -316,10 +322,13 @@ macro (build_addon target prefix libs) if (${prefix}_CUSTOM_BINARY) install(FILES ${LIBRARY_LOCATION} DESTINATION ${CMAKE_INSTALL_LIBDIR}/addons/${target} RENAME ${LIBRARY_FILENAME}) endif() - install(DIRECTORY ${target} DESTINATION ${CMAKE_INSTALL_DATADIR}/addons PATTERN "xml.in" EXCLUDE) + install(DIRECTORY ${target} DESTINATION ${CMAKE_INSTALL_DATADIR}/addons PATTERN "*.xml.in" EXCLUDE) if(${prefix}_CUSTOM_DATA) install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${CMAKE_INSTALL_DATADIR}/addons/${target}/resources) endif() + if(${prefix}_ADDITIONAL_BINARY) + install(FILES ${${prefix}_ADDITIONAL_BINARY} DESTINATION ${CMAKE_INSTALL_LIBDIR}/addons/${target}) + endif() endif() if(${APP_NAME_UC}_BUILD_DIR) file(GLOB_RECURSE files ${CMAKE_CURRENT_SOURCE_DIR}/${target}/*) diff --git a/cmake/scripts/common/ArchSetup.cmake b/cmake/scripts/common/ArchSetup.cmake index 8d5dba8..357c14c 100644 --- a/cmake/scripts/common/ArchSetup.cmake +++ b/cmake/scripts/common/ArchSetup.cmake @@ -54,9 +54,6 @@ endmacro() # -------- Main script --------- message(STATUS "System type: ${CMAKE_SYSTEM_NAME}") -if(NOT CORE_SYSTEM_NAME) - string(TOLOWER ${CMAKE_SYSTEM_NAME} CORE_SYSTEM_NAME) -endif() if(WITH_CPU) set(CPU ${WITH_CPU}) diff --git a/cmake/scripts/common/Macros.cmake b/cmake/scripts/common/Macros.cmake index 4b6f890..8bee3da 100644 --- a/cmake/scripts/common/Macros.cmake +++ b/cmake/scripts/common/Macros.cmake @@ -706,13 +706,13 @@ macro(find_addon_xml_in_files) foreach(loop_var ${ADDON_FILES}) if(loop_var MATCHES "addon.xml.in") string(REPLACE "addon.xml.in" "addon.xml" loop_var ${loop_var}) - endif() - list(GET loop_var 0 file_name) - string(REPLACE "${CORE_SOURCE_DIR}/" "" file_name ${file_name}) - list(APPEND ADDON_INSTALL_DATA "${file_name}") + list(GET loop_var 0 file_name) + string(REPLACE "${CORE_SOURCE_DIR}/" "" file_name ${file_name}) + list(APPEND ADDON_INSTALL_DATA "${file_name}") - unset(file_name) + unset(file_name) + endif() endforeach() unset(xml_name) endforeach() diff --git a/cmake/scripts/common/Platform.cmake b/cmake/scripts/common/Platform.cmake new file mode 100644 index 0000000..b19b7e5 --- /dev/null +++ b/cmake/scripts/common/Platform.cmake @@ -0,0 +1,32 @@ +if(NOT CORE_SYSTEM_NAME) + string(TOLOWER ${CMAKE_SYSTEM_NAME} CORE_SYSTEM_NAME) +endif() + +if(CORE_SYSTEM_NAME STREQUAL linux) + # Set default CORE_PLATFORM_NAME to X11 + # This is overridden by user setting -DCORE_PLATFORM_NAME= + set(_DEFAULT_PLATFORM X11) +else() + string(TOLOWER ${CORE_SYSTEM_NAME} _DEFAULT_PLATFORM) +endif() + +# +# Note: please do not use CORE_PLATFORM_NAME in any checks, +# use the normalized to lower case CORE_PLATFORM_NAME_LC (see below) instead +# +if(NOT CORE_PLATFORM_NAME) + set(CORE_PLATFORM_NAME ${_DEFAULT_PLATFORM} CACHE STRING "Platform port to build") +endif() +unset(_DEFAULT_PLATFORM) +string(TOLOWER ${CORE_PLATFORM_NAME} CORE_PLATFORM_NAME_LC) + +list(APPEND final_message "Platform: ${CORE_PLATFORM_NAME}") +if(EXISTS ${CMAKE_SOURCE_DIR}/cmake/platform/${CORE_SYSTEM_NAME}/${CORE_PLATFORM_NAME_LC}.cmake) + include(${CMAKE_SOURCE_DIR}/cmake/platform/${CORE_SYSTEM_NAME}/${CORE_PLATFORM_NAME_LC}.cmake) +else() + file(GLOB _platformnames RELATIVE ${CMAKE_SOURCE_DIR}/cmake/platform/${CORE_SYSTEM_NAME}/ + ${CMAKE_SOURCE_DIR}/cmake/platform/${CORE_SYSTEM_NAME}/*.cmake) + string(REPLACE ".cmake" " " _platformnames ${_platformnames}) + message(FATAL_ERROR "invalid CORE_PLATFORM_NAME: ${CORE_PLATFORM_NAME_LC}\nValid platforms: ${_platformnames}") +endif() + diff --git a/cmake/scripts/common/PrepareEnv.cmake b/cmake/scripts/common/PrepareEnv.cmake index 4dc8698..5a6066b 100644 --- a/cmake/scripts/common/PrepareEnv.cmake +++ b/cmake/scripts/common/PrepareEnv.cmake @@ -42,7 +42,7 @@ file(COPY ${CORE_SOURCE_DIR}/cmake/scripts/common/AddonHelpers.cmake # copy standard add-on include files file(COPY ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/ - DESTINATION ${APP_INCLUDE_DIR}) + DESTINATION ${APP_INCLUDE_DIR} REGEX ".txt" EXCLUDE) ### copy all the addon binding header files to include/kodi # parse addon-bindings.mk to get the list of header files to copy diff --git a/cmake/scripts/linux/ArchSetup.cmake b/cmake/scripts/linux/ArchSetup.cmake index c31becd..bf32fe0 100644 --- a/cmake/scripts/linux/ArchSetup.cmake +++ b/cmake/scripts/linux/ArchSetup.cmake @@ -1,6 +1,10 @@ set(ARCH_DEFINES -D_LINUX -DTARGET_POSIX -DTARGET_LINUX) -set(SYSTEM_DEFINES -D__STDC_CONSTANT_MACROS -D_LARGEFILE64_SOURCE - -D_FILE_OFFSET_BITS=64) +# temp until further cleanup is done +if(CORE_PLATFORM_NAME_LC STREQUAL rbpi) + list(APPEND ARCH_DEFINES -D_ARMEL -DTARGET_RASPBERRY_PI) +endif() +set(SYSTEM_DEFINES -D__STDC_CONSTANT_MACROS -D_FILE_DEFINED + -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64) set(PLATFORM_DIR linux) set(CMAKE_SYSTEM_NAME Linux) if(WITH_ARCH) @@ -13,6 +17,14 @@ else() set(ARCH i486-linux) set(NEON False) add_options(CXX ALL_BUILDS "-msse") + elseif(CPU STREQUAL arm1176jzf-s) + set(ARCH arm) + set(NEON False) + set(NEON_FLAGS "-mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp") + elseif(CPU MATCHES "cortex-a7" OR CPU MATCHES "cortex-a53") + set(ARCH arm) + set(NEON True) + set(NEON_FLAGS "-fPIC -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4 -mvectorize-with-neon-quad") elseif(CPU MATCHES arm) set(ARCH arm) set(NEON True) @@ -44,3 +56,8 @@ endif() if(ENABLE_MIR) set(ENABLE_VDPAU OFF CACHE BOOL "Disabling VDPAU since no Mir support" FORCE) endif() + +if(ENABLE_GBM) + set(ENABLE_VDPAU OFF CACHE BOOL "Disabling VDPAU" FORCE) + set(ENABLE_VAAPI OFF CACHE BOOL "Disabling VAAPI" FORCE) +endif() diff --git a/cmake/scripts/linux/Install.cmake b/cmake/scripts/linux/Install.cmake index 613a989..7a2705b 100644 --- a/cmake/scripts/linux/Install.cmake +++ b/cmake/scripts/linux/Install.cmake @@ -148,7 +148,8 @@ endif() # Install kodi-addon-dev headers install(DIRECTORY ${CMAKE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/ DESTINATION ${includedir}/${APP_NAME_LC} - COMPONENT kodi-addon-dev) + COMPONENT kodi-addon-dev + REGEX ".txt" EXCLUDE) install(FILES ${CMAKE_SOURCE_DIR}/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxPacket.h ${CMAKE_SOURCE_DIR}/xbmc/cores/VideoPlayer/DVDDemuxers/DemuxCrypto.h @@ -301,7 +302,7 @@ endforeach() # generate packages? yes please, if everything checks out if(CPACK_GENERATOR) - if(CPACK_GENERATOR STREQUAL DEB AND ( CORE_SYSTEM_NAME STREQUAL linux OR CORE_SYSTEM_NAME STREQUAL rbpi ) ) + if(CPACK_GENERATOR STREQUAL DEB AND CORE_SYSTEM_NAME STREQUAL linux) if(CMAKE_BUILD_TYPE STREQUAL Debug) message(STATUS "DEB Generator: Build type is set to 'Debug'. Packaged binaries will be unstripped.") endif() diff --git a/cmake/scripts/rbpi/ArchSetup.cmake b/cmake/scripts/rbpi/ArchSetup.cmake deleted file mode 100644 index 6fc2c21..0000000 --- a/cmake/scripts/rbpi/ArchSetup.cmake +++ /dev/null @@ -1,35 +0,0 @@ -set(ARCH_DEFINES -DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI - -DHAS_OMXPLAYER -DHAVE_OMXLIB) -set(SYSTEM_DEFINES -D__STDC_CONSTANT_MACROS -D_LARGEFILE64_SOURCE - -D_FILE_OFFSET_BITS=64) -set(PLATFORM_DIR linux) - -string(REGEX REPLACE "[ ]+" ";" SYSTEM_LDFLAGS "$ENV{LDFLAGS}") -set(CMAKE_SYSTEM_NAME Linux) - -if(WITH_ARCH) - set(ARCH ${WITH_ARCH}) -else() - if(CPU STREQUAL arm1176jzf-s) - set(ARCH arm) - set(NEON False) - set(NEON_FLAGS "-mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp") - elseif(CPU MATCHES "cortex-a7" OR CPU MATCHES "cortex-a53") - set(ARCH arm) - set(NEON True) - set(NEON_FLAGS "-fPIC -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4 -mvectorize-with-neon-quad") - else() - message(SEND_ERROR "Unknown CPU: ${CPU}") - endif() -endif() - -# Make sure we strip binaries in Release build -if(CMAKE_BUILD_TYPE STREQUAL Release AND CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s") -endif() - -find_package(CXX11 REQUIRED) - -set(MMAL_FOUND 1 CACHE INTERNAL "MMAL") -set(OMX_FOUND 1 CACHE INTERNAL "OMX") -set(OMXLIB_FOUND 1 CACHE INTERNAL "OMX") diff --git a/cmake/scripts/rbpi/ExtraTargets.cmake b/cmake/scripts/rbpi/ExtraTargets.cmake deleted file mode 120000 index e757c60..0000000 --- a/cmake/scripts/rbpi/ExtraTargets.cmake +++ /dev/null @@ -1 +0,0 @@ -../linux/ExtraTargets.cmake \ No newline at end of file diff --git a/cmake/scripts/rbpi/Install.cmake b/cmake/scripts/rbpi/Install.cmake deleted file mode 120000 index 28ce012..0000000 --- a/cmake/scripts/rbpi/Install.cmake +++ /dev/null @@ -1 +0,0 @@ -../linux/Install.cmake \ No newline at end of file diff --git a/cmake/scripts/rbpi/Macros.cmake b/cmake/scripts/rbpi/Macros.cmake deleted file mode 120000 index 2fdbb25..0000000 --- a/cmake/scripts/rbpi/Macros.cmake +++ /dev/null @@ -1 +0,0 @@ -../linux/Macros.cmake \ No newline at end of file diff --git a/cmake/scripts/rbpi/PathSetup.cmake b/cmake/scripts/rbpi/PathSetup.cmake deleted file mode 120000 index 6786c1c..0000000 --- a/cmake/scripts/rbpi/PathSetup.cmake +++ /dev/null @@ -1 +0,0 @@ -../linux/PathSetup.cmake \ No newline at end of file diff --git a/cmake/scripts/windows/ArchSetup.cmake b/cmake/scripts/windows/ArchSetup.cmake index 11c45cf..9634b3a 100644 --- a/cmake/scripts/windows/ArchSetup.cmake +++ b/cmake/scripts/windows/ArchSetup.cmake @@ -13,21 +13,17 @@ endif() set(PLATFORM_DIR platform/win32) +set(CORE_MAIN_SOURCE ${CMAKE_SOURCE_DIR}/xbmc/platform/win32/WinMain.cpp) + # Precompiled headers fail with per target output directory. (needs CMake 3.1) set(PRECOMPILEDHEADER_DIR ${PROJECT_BINARY_DIR}/${CORE_BUILD_CONFIG}/objs) set(CMAKE_SYSTEM_NAME Windows) -list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${CMAKE_SOURCE_DIR}/lib/win32) -list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${CMAKE_SOURCE_DIR}/lib/win32/ffmpeg) -list(APPEND CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_SOURCE_DIR}/lib/win32/ffmpeg/bin) +list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${CMAKE_SOURCE_DIR}/project/BuildDependencies/mingwlibs/${ARCH}) +list(APPEND CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_SOURCE_DIR}/project/BuildDependencies/mingwlibs/${ARCH}/bin) list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${CMAKE_SOURCE_DIR}/project/BuildDependencies/${ARCH}) list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${CMAKE_SOURCE_DIR}/project/BuildDependencies) - -if(${ARCH} STREQUAL win32) - set(PYTHON_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/project/BuildDependencies/include/python) -else() - set(PYTHON_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/project/BuildDependencies/${ARCH}/include/python) -endif() +set(PYTHON_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/project/BuildDependencies/${ARCH}/include/python) # -------- Compiler options --------- -- cgit v1.2.3