From 2577b55681a97f3eec3fb0e3b5a4fb7f2cb18b8a Mon Sep 17 00:00:00 2001 From: manuel Date: Thu, 30 Aug 2018 00:42:04 +0200 Subject: sync with upstream --- cmake/scripts/android/Install.cmake | 2 + cmake/scripts/common/AddonHelpers.cmake | 19 ++--- cmake/scripts/common/ArchSetup.cmake | 7 +- cmake/scripts/common/CheckTargetPlatform.cmake | 4 +- cmake/scripts/common/HandleDepends.cmake | 16 ++++- cmake/scripts/common/Macros.cmake | 14 +++- cmake/scripts/common/ProjectMacros.cmake | 2 +- cmake/scripts/freebsd/ArchSetup.cmake | 9 +++ cmake/scripts/freebsd/ExtraTargets.cmake | 30 +------- cmake/scripts/freebsd/Macros.cmake | 96 +++++++++++++++++++++++++- cmake/scripts/ios/Install.cmake | 3 +- cmake/scripts/linux/ArchSetup.cmake | 4 -- cmake/scripts/linux/Install.cmake | 18 +++-- cmake/scripts/linux/Macros.cmake | 2 +- cmake/scripts/osx/ArchSetup.cmake | 2 +- cmake/scripts/windows/ArchSetup.cmake | 6 +- cmake/scripts/windowsstore/ArchSetup.cmake | 32 +++------ cmake/scripts/windowsstore/Macros.cmake | 14 ++-- 18 files changed, 184 insertions(+), 96 deletions(-) mode change 120000 => 100644 cmake/scripts/freebsd/Macros.cmake (limited to 'cmake/scripts') diff --git a/cmake/scripts/android/Install.cmake b/cmake/scripts/android/Install.cmake index cc53607..a0fa155 100644 --- a/cmake/scripts/android/Install.cmake +++ b/cmake/scripts/android/Install.cmake @@ -151,6 +151,8 @@ foreach(lib IN LISTS required_dyload dyload_optional ITEMS Shairplay) add_bundle_file(${DEPENDS_PATH}/lib/${lib_so} ${libdir} "") endif() endforeach() +add_bundle_file(${ASS_LIBRARY} ${libdir} "") +add_bundle_file(${BLURAY_LIBRARY} ${libdir} "") add_bundle_file(${SMBCLIENT_LIBRARY} ${libdir} "") # Main targets from Makefile.in diff --git a/cmake/scripts/common/AddonHelpers.cmake b/cmake/scripts/common/AddonHelpers.cmake index 5470940..4bb4c98 100644 --- a/cmake/scripts/common/AddonHelpers.cmake +++ b/cmake/scripts/common/AddonHelpers.cmake @@ -1,9 +1,9 @@ # Workaround for the fact that cpack's filenames are not customizable. # Each add-on is added as a separate component to facilitate zip/tgz packaging. -# The filenames are always of the form basename-component, which is +# The filenames are always of the form basename-component, which is # incompatible with the addonid-version scheme we want. This hack renames # the files from the file names generated by the 'package' target. -# Sadly we cannot extend the 'package' target, as it is a builtin target, see +# Sadly we cannot extend the 'package' target, as it is a builtin target, see # http://public.kitware.com/Bug/view.php?id=8438 # Thus, we have to add an 'addon-package' target. get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) @@ -32,7 +32,7 @@ macro (addon_version dir prefix) file(READ ${dir}/addon.xml ADDONXML) endif() - string(REGEX MATCH "]*version.?=.?.[0-9\\.]+" VERSION_STRING ${ADDONXML}) + string(REGEX MATCH "]*version.?=.?.[0-9\\.]+" VERSION_STRING ${ADDONXML}) string(REGEX REPLACE ".*version=.([0-9\\.]+).*" "\\1" ${prefix}_VERSION ${VERSION_STRING}) message(STATUS ${prefix}_VERSION=${${prefix}_VERSION}) endmacro() @@ -62,7 +62,7 @@ macro (build_addon target prefix libs) # include path name already complete list(APPEND USED_SOURCES ${${prefix}_HEADERS}) else() - # add the complete include path to begin + # add the complete include path to begin foreach(hdr_file ${${prefix}_HEADERS}) list(APPEND USED_SOURCES ${PROJECT_SOURCE_DIR}/${hdr_file}) endforeach() @@ -86,19 +86,19 @@ macro (build_addon target prefix libs) # include path name already complete list(APPEND USED_SOURCES ${${prefix}_SOURCES}) else() - # add the complete include path to begin + # add the complete include path to begin foreach(src_file ${${prefix}_SOURCES}) list(APPEND USED_SOURCES ${PROJECT_SOURCE_DIR}/${src_file}) endforeach() endif() - + # Set defines used in addon.xml.in and read from versions.h to set add-on # version parts automatically file(STRINGS ${KODI_INCLUDE_DIR}/versions.h BIN_ADDON_PARTS) foreach(loop_var ${BIN_ADDON_PARTS}) # Only pass strings with "#define ADDON_" from versions.h if(loop_var MATCHES "#define ADDON_") - string(REGEX REPLACE "\\\n" " " loop_var ${loop_var}) # remove header line breaks + string(REGEX REPLACE "\\\n" " " loop_var ${loop_var}) # remove header line breaks string(REGEX REPLACE "#define " "" loop_var ${loop_var}) # remove the #define name from string string(REGEX MATCHALL "[//a-zA-Z0-9._-]+" loop_var "${loop_var}") # separate the define values to a list @@ -157,7 +157,8 @@ macro (build_addon target prefix libs) target_link_libraries(${target} ${${libs}}) set_target_properties(${target} PROPERTIES VERSION ${${prefix}_VERSION} SOVERSION ${APP_VERSION_MAJOR}.${APP_VERSION_MINOR} - PREFIX "") + PREFIX "" + POSITION_INDEPENDENT_CODE 1) if(OS STREQUAL "android") set_target_properties(${target} PROPERTIES PREFIX "lib") endif() @@ -384,7 +385,7 @@ if(HAVE_LTO) if(USE_LTO) add_options(ALL_LANGUAGES ALL_BUILDS "-flto") endif() -endif() +endif() # set this to try linking dependencies as static as possible if(ADDONS_PREFER_STATIC_LIBS) diff --git a/cmake/scripts/common/ArchSetup.cmake b/cmake/scripts/common/ArchSetup.cmake index c97929e..4704193 100644 --- a/cmake/scripts/common/ArchSetup.cmake +++ b/cmake/scripts/common/ArchSetup.cmake @@ -55,7 +55,7 @@ macro(check_builtin func var) endmacro() -# -------- Main script --------- +# -------- Main script --------- message(STATUS "System type: ${CMAKE_SYSTEM_NAME}") if(WITH_CPU) @@ -157,7 +157,8 @@ if(PLATFORM_DEFINES) add_options(ALL_LANGUAGES ALL_BUILDS ${PLATFORM_DEFINES}) endif() -if(CMAKE_BUILD_TYPE STREQUAL "Debug") - add_options (ALL_LANGUAGES DEBUG "-g" "-D_DEBUG" "-Wall") +if(NOT MSVC) + add_options(ALL_LANGUAGES ALL_BUILDS "-Wall") + add_options(ALL_LANGUAGES DEBUG "-g" "-D_DEBUG") endif() diff --git a/cmake/scripts/common/CheckTargetPlatform.cmake b/cmake/scripts/common/CheckTargetPlatform.cmake index 82ee668..526e4bd 100644 --- a/cmake/scripts/common/CheckTargetPlatform.cmake +++ b/cmake/scripts/common/CheckTargetPlatform.cmake @@ -9,9 +9,9 @@ function(check_target_platform dir target_platform build) if(EXISTS ${dir} AND EXISTS ${dir}/platforms.txt) # get all the specified platforms file(STRINGS ${dir}/platforms.txt platforms) - + list( LENGTH platforms listlen ) - if(${listlen} EQUAL 1) + if(${listlen} EQUAL 1) string(REPLACE " " ";" platforms ${platforms}) endif() diff --git a/cmake/scripts/common/HandleDepends.cmake b/cmake/scripts/common/HandleDepends.cmake index fb110d6..47f7d9b 100644 --- a/cmake/scripts/common/HandleDepends.cmake +++ b/cmake/scripts/common/HandleDepends.cmake @@ -231,9 +231,23 @@ function(add_addon_depends addon searchpath) -DCMAKE_INCLUDE_PATH=${OUTPUT_DIR}/include) endif() + set(DOWNLOAD_DIR ${BUILD_DIR}/download) + if(EXISTS ${dir}/${id}.sha256) + file(STRINGS ${dir}/${id}.sha256 sha256sum) + list(GET sha256sum 0 sha256sum) + set(URL_HASH_COMMAND URL_HASH SHA256=${sha256sum}) + if(TARBALL_DIR) + set(DOWNLOAD_DIR ${TARBALL_DIR}) + endif() + else() + unset(URL_HASH_COMMAND) + message(AUTHOR_WARNING "${dir}/${id}.sha256 is missing") + endif() + externalproject_add(${id} URL ${url} - DOWNLOAD_DIR ${BUILD_DIR}/download + "${URL_HASH_COMMAND}" + DOWNLOAD_DIR ${DOWNLOAD_DIR} CONFIGURE_COMMAND ${CONFIGURE_COMMAND} "${EXTERNALPROJECT_SETUP}") endif() diff --git a/cmake/scripts/common/Macros.cmake b/cmake/scripts/common/Macros.cmake index c21069d..0d89dd3 100644 --- a/cmake/scripts/common/Macros.cmake +++ b/cmake/scripts/common/Macros.cmake @@ -468,7 +468,7 @@ function(core_optional_dyload_dep) foreach(depspec ${ARGN}) set(_required False) split_dependency_specification(${depspec} dep version) - setup_enable_switch() + setup_enable_switch() if(${enable_switch} STREQUAL AUTO) find_package_with_ver(${dep} ${version}) elseif(${${enable_switch}}) @@ -662,7 +662,11 @@ function(core_find_git_rev stamp) string(REPLACE "\"" "" DATE ${DATE}) string(REPLACE "-" "" DATE ${DATE}) else() - string(TIMESTAMP DATE "%Y%m%d" UTC) + if(EXISTS ${CMAKE_SOURCE_DIR}/BUILDDATE) + file(STRINGS ${CMAKE_SOURCE_DIR}/BUILDDATE DATE LIMIT_INPUT 8) + else() + string(TIMESTAMP DATE "%Y%m%d" UTC) + endif() if(EXISTS ${CMAKE_SOURCE_DIR}/VERSION) file(STRINGS ${CMAKE_SOURCE_DIR}/VERSION HASH LIMIT_INPUT 16) else() @@ -687,6 +691,7 @@ endfunction() # APP_NAME_UC - uppercased app name # APP_PACKAGE - Android full package name # COMPANY_NAME - company name +# APP_WEBSITE - site url # APP_VERSION_MAJOR - the app version major # APP_VERSION_MINOR - the app version minor # APP_VERSION_TAG - the app version tag @@ -711,7 +716,7 @@ macro(core_find_versions) core_file_read_filtered(version_list ${CORE_SOURCE_DIR}/version.txt) core_file_read_filtered(json_version ${CORE_SOURCE_DIR}/xbmc/interfaces/json-rpc/schema/version.txt) string(REGEX REPLACE "([^ ;]*) ([^;]*)" "\\1;\\2" version_list "${version_list};${json_version}") - set(version_props + set(version_props ADDON_API APP_NAME APP_PACKAGE @@ -761,6 +766,9 @@ macro(core_find_versions) # unset variables not used anywhere else unset(version_list) unset(APP_APP_NAME) + unset(APP_COMPANY_NAME) + unset(APP_APP_PACKAGE) + unset(APP_JSONRPC_VERSION) unset(BIN_ADDON_PARTS) # bail if we can't parse version.txt diff --git a/cmake/scripts/common/ProjectMacros.cmake b/cmake/scripts/common/ProjectMacros.cmake index 641e047..fba5252 100644 --- a/cmake/scripts/common/ProjectMacros.cmake +++ b/cmake/scripts/common/ProjectMacros.cmake @@ -46,7 +46,7 @@ function(copy_skin_to_buildtree skin) endfunction() # Get GTest tests as CMake tests. -# Copied from FindGTest.cmake +# Copied from FindGTest.cmake # Thanks to Daniel Blezek for the GTEST_ADD_TESTS code function(GTEST_ADD_TESTS executable extra_args) if(NOT ARGN) diff --git a/cmake/scripts/freebsd/ArchSetup.cmake b/cmake/scripts/freebsd/ArchSetup.cmake index db11bf8..3d5599c 100644 --- a/cmake/scripts/freebsd/ArchSetup.cmake +++ b/cmake/scripts/freebsd/ArchSetup.cmake @@ -10,6 +10,15 @@ else() set(ARCH x86_64-freebsd) elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i.86") set(ARCH x86-freebsd) + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL armv6) + set(ARCH armv6-freebsd) + set(NEON True) + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL armv7) + set(ARCH armv7-freebsd) + set(NEON True) + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64) + set(ARCH aarch64-freebsd) + set(NEON True) else() message(WARNING "unknown CPU: ${CPU}") endif() diff --git a/cmake/scripts/freebsd/ExtraTargets.cmake b/cmake/scripts/freebsd/ExtraTargets.cmake index 66383ab..9d5d214 100644 --- a/cmake/scripts/freebsd/ExtraTargets.cmake +++ b/cmake/scripts/freebsd/ExtraTargets.cmake @@ -1,29 +1 @@ -# xrandr -if(X_FOUND AND XRANDR_FOUND) - find_package(X QUIET) - find_package(XRandR QUIET) - add_executable(${APP_NAME_LC}-xrandr ${CMAKE_SOURCE_DIR}/xbmc-xrandr.c) - target_link_libraries(${APP_NAME_LC}-xrandr ${SYSTEM_LDFLAGS} ${X_LIBRARIES} m ${XRANDR_LIBRARIES}) -endif() - -# WiiRemote -if(ENABLE_EVENTCLIENTS AND BLUETOOTH_FOUND) - find_package(CWiid QUIET) - if(CWIID_FOUND) - add_subdirectory(${CMAKE_SOURCE_DIR}/tools/EventClients/Clients/WiiRemote build/WiiRemote) - endif() -endif() - -if(CORE_PLATFORM_NAME_LC STREQUAL "wayland") - # This cannot go into wayland.cmake since it requires the Wayland dependencies - # to already be resolved - set(PROTOCOL_XMLS "${WAYLAND_PROTOCOLS_DIR}/unstable/xdg-shell/xdg-shell-unstable-v6.xml" - "${WAYLAND_PROTOCOLS_DIR}/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml") - add_custom_command(OUTPUT "${WAYLAND_EXTRA_PROTOCOL_GENERATED_DIR}/wayland-extra-protocols.hpp" "${WAYLAND_EXTRA_PROTOCOL_GENERATED_DIR}/wayland-extra-protocols.cpp" - COMMAND "${WAYLANDPP_SCANNER}" ${PROTOCOL_XMLS} "${WAYLAND_EXTRA_PROTOCOL_GENERATED_DIR}/wayland-extra-protocols.hpp" "${WAYLAND_EXTRA_PROTOCOL_GENERATED_DIR}/wayland-extra-protocols.cpp" - DEPENDS "${WAYLANDPP_SCANNER}" ${PROTOCOL_XMLS} - COMMENT "Generating wayland-protocols C++ wrappers") - - # Dummy target for dependencies - add_custom_target(generate-wayland-extra-protocols DEPENDS wayland-extra-protocols.hpp) -endif() +include(cmake/scripts/linux/ExtraTargets.cmake) diff --git a/cmake/scripts/freebsd/Macros.cmake b/cmake/scripts/freebsd/Macros.cmake deleted file mode 120000 index 2fdbb25..0000000 --- a/cmake/scripts/freebsd/Macros.cmake +++ /dev/null @@ -1 +0,0 @@ -../linux/Macros.cmake \ No newline at end of file diff --git a/cmake/scripts/freebsd/Macros.cmake b/cmake/scripts/freebsd/Macros.cmake new file mode 100644 index 0000000..ef5aed3 --- /dev/null +++ b/cmake/scripts/freebsd/Macros.cmake @@ -0,0 +1,95 @@ +function(core_link_library lib wraplib) + set(export -Wl,--unresolved-symbols=ignore-all + `cat ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cores/dll-loader/exports/wrapper.def` + ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cores/dll-loader/exports/CMakeFiles/wrapper.dir/wrapper.c.o) + set(check_arg "") + if(TARGET ${lib}) + set(target ${lib}) + set(link_lib $) + set(check_arg ${ARGV2}) + set(data_arg ${ARGV3}) + else() + set(target ${ARGV2}) + set(link_lib ${lib}) + set(check_arg ${ARGV3}) + set(data_arg ${ARGV4}) + endif() + + # wrapper has to be adapted in order to support coverage. + if(CMAKE_BUILD_TYPE STREQUAL Coverage) + set(export "") + endif() + + if(check_arg STREQUAL export) + set(export ${export} + -Wl,--version-script=${ARGV3}) + elseif(check_arg STREQUAL extras) + foreach(arg ${data_arg}) + list(APPEND export ${arg}) + endforeach() + elseif(check_arg STREQUAL archives) + set(extra_libs ${data_arg}) + endif() + + string(REGEX REPLACE "[ ]+" ";" _flags "${CMAKE_SHARED_LINKER_FLAGS}") + get_filename_component(dir ${wraplib} DIRECTORY) + add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${wraplib}-${ARCH}${CMAKE_SHARED_MODULE_SUFFIX} + COMMAND ${CMAKE_COMMAND} -E make_directory ${dir} + COMMAND ${CMAKE_C_COMPILER} + ARGS ${_flags} -Wl,--whole-archive + "${link_lib}" ${extra_libs} + -Wl,--no-whole-archive -lm + -Wl,-soname,${wraplib}-${ARCH}${CMAKE_SHARED_MODULE_SUFFIX} + -shared -o ${CMAKE_BINARY_DIR}/${wraplib}-${ARCH}${CMAKE_SHARED_MODULE_SUFFIX} + ${export} + DEPENDS ${target} wrapper.def wrapper) + + get_filename_component(libname ${wraplib} NAME_WE) + add_custom_target(wrap_${libname} ALL DEPENDS ${CMAKE_BINARY_DIR}/${wraplib}-${ARCH}${CMAKE_SHARED_MODULE_SUFFIX}) + set_target_properties(wrap_${libname} PROPERTIES FOLDER lib/wrapped) + add_dependencies(${APP_NAME_LC}-libraries wrap_${libname}) + + set(LIBRARY_FILES ${LIBRARY_FILES} ${CMAKE_BINARY_DIR}/${wraplib}-${ARCH}${CMAKE_SHARED_MODULE_SUFFIX} CACHE STRING "" FORCE) +endfunction() + +function(find_soname lib) + cmake_parse_arguments(arg "REQUIRED" "" "" ${ARGN}) + + string(TOLOWER ${lib} liblow) + if(${lib}_LDFLAGS) + set(link_lib "${${lib}_LDFLAGS}") + else() + if(IS_ABSOLUTE "${${lib}_LIBRARIES}") + set(link_lib "${${lib}_LIBRARIES}") + else() + set(link_lib -l${${lib}_LIBRARIES}) + endif() + endif() + execute_process(COMMAND ${CMAKE_C_COMPILER} -nostdlib -o /dev/null -Wl,-M ${link_lib} + COMMAND grep LOAD.*${liblow} + ERROR_QUIET + OUTPUT_VARIABLE ${lib}_FILENAME) + string(REPLACE "LOAD " "" ${lib}_FILENAME "${${lib}_FILENAME}") + string(STRIP "${${lib}_FILENAME}" ${lib}_FILENAME) + if(NOT ${lib}_FILENAME) + execute_process(COMMAND ${CMAKE_C_COMPILER} -nostdlib -o /dev/null -Wl,-t ${link_lib} + ERROR_QUIET + OUTPUT_VARIABLE _TMP_FILENAME) + string(REGEX MATCH ".*lib${liblow}.so" ${lib}_FILENAME ${_TMP_FILENAME}) + endif() + if(${lib}_FILENAME) + execute_process(COMMAND ${CMAKE_OBJDUMP} -p ${${lib}_FILENAME} + COMMAND grep SONAME.*${liblow} + ERROR_QUIET + OUTPUT_VARIABLE ${lib}_SONAME) + string(REPLACE "SONAME " "" ${lib}_SONAME ${${lib}_SONAME}) + string(STRIP ${${lib}_SONAME} ${lib}_SONAME) + if(VERBOSE) + message(STATUS "${lib} soname: ${${lib}_SONAME}") + endif() + set(${lib}_SONAME ${${lib}_SONAME} PARENT_SCOPE) + endif() + if(arg_REQUIRED AND NOT ${lib}_SONAME) + message(FATAL_ERROR "Could not find dynamically loadable library ${lib}") + endif() +endfunction() diff --git a/cmake/scripts/ios/Install.cmake b/cmake/scripts/ios/Install.cmake index 587b24f..7b6c3de 100644 --- a/cmake/scripts/ios/Install.cmake +++ b/cmake/scripts/ios/Install.cmake @@ -66,7 +66,8 @@ add_custom_command(TARGET ${APP_NAME_LC} POST_BUILD "WRAPPER_EXTENSION=app" "SRCROOT=${CMAKE_BINARY_DIR}" ${CMAKE_SOURCE_DIR}/tools/darwin/Support/copyframeworks-ios.command - COMMAND "NATIVEPREFIX=${NATIVEPREFIX}" + COMMAND "XBMC_DEPENDS=${DEPENDS_PATH}" + "NATIVEPREFIX=${NATIVEPREFIX}" "PLATFORM_NAME=${PLATFORM}" "CODESIGNING_FOLDER_PATH=$" "BUILT_PRODUCTS_DIR=$/.." diff --git a/cmake/scripts/linux/ArchSetup.cmake b/cmake/scripts/linux/ArchSetup.cmake index fcee675..624edf6 100644 --- a/cmake/scripts/linux/ArchSetup.cmake +++ b/cmake/scripts/linux/ArchSetup.cmake @@ -108,10 +108,6 @@ if(CMAKE_BUILD_TYPE STREQUAL Coverage) set(COVERAGE_EXCLUDES */test/* lib/* */lib/*) 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) endif() diff --git a/cmake/scripts/linux/Install.cmake b/cmake/scripts/linux/Install.cmake index d6767bf..d64b98a 100644 --- a/cmake/scripts/linux/Install.cmake +++ b/cmake/scripts/linux/Install.cmake @@ -127,11 +127,17 @@ install(FILES ${CMAKE_SOURCE_DIR}/tools/Linux/packaging/media/icon256x256.png DESTINATION ${datarootdir}/icons/hicolor/256x256/apps COMPONENT kodi) +# Install firewalld service definitions +install(FILES ${CMAKE_SOURCE_DIR}/tools/Linux/firewalld-services/kodi-eventserver.xml + ${CMAKE_SOURCE_DIR}/tools/Linux/firewalld-services/kodi-http.xml + ${CMAKE_SOURCE_DIR}/tools/Linux/firewalld-services/kodi-jsonrpc.xml + DESTINATION ${prefix}/lib/firewalld/services + COMPONENT kodi) + # Install docs -install(FILES ${CMAKE_SOURCE_DIR}/copying.txt - ${CMAKE_SOURCE_DIR}/LICENSE.GPL +install(FILES ${CMAKE_SOURCE_DIR}/LICENSE.md ${CMAKE_SOURCE_DIR}/version.txt - ${CMAKE_SOURCE_DIR}/docs/README.linux + ${CMAKE_SOURCE_DIR}/docs/README.Linux.md DESTINATION ${docdir} COMPONENT kodi) @@ -197,7 +203,7 @@ if(ENABLE_EVENTCLIENTS) file(WRITE ${CMAKE_BINARY_DIR}/packages/deb/defs.py ICON_PATH="usr/share/pixmaps/${APP_NAME_LC}/") install(PROGRAMS ${CMAKE_BINARY_DIR}/packages/deb/defs.py ${CMAKE_SOURCE_DIR}/tools/EventClients/lib/python/__init__.py - "${CMAKE_SOURCE_DIR}/tools/EventClients/Clients/PS3 BD Remote/ps3_remote.py" + ${CMAKE_SOURCE_DIR}/tools/EventClients/Clients/PS3BDRemote/ps3_remote.py ${CMAKE_SOURCE_DIR}/tools/EventClients/lib/python/xbmcclient.py ${CMAKE_SOURCE_DIR}/tools/EventClients/lib/python/zeroconf.py DESTINATION ${PYTHON_LIB_PATH}/${APP_NAME_LC} @@ -246,7 +252,7 @@ if(ENABLE_EVENTCLIENTS) COMPONENT kodi-eventclients-dev) # Install kodi-eventclients-ps3 - install(PROGRAMS "${CMAKE_SOURCE_DIR}/tools/EventClients/Clients/PS3 BD Remote/ps3_remote.py" + install(PROGRAMS ${CMAKE_SOURCE_DIR}/tools/EventClients/Clients/PS3BDRemote/ps3_remote.py RENAME ${APP_NAME_LC}-ps3remote DESTINATION ${bindir} COMPONENT kodi-eventclients-ps3) @@ -259,7 +265,7 @@ if(ENABLE_EVENTCLIENTS) endif() # Install kodi-eventclients-xbmc-send - install(PROGRAMS "${CMAKE_SOURCE_DIR}/tools/EventClients/Clients/Kodi Send/kodi-send.py" + install(PROGRAMS ${CMAKE_SOURCE_DIR}/tools/EventClients/Clients/KodiSend/kodi-send.py RENAME ${APP_NAME_LC}-send DESTINATION ${bindir} COMPONENT kodi-eventclients-xbmc-send) diff --git a/cmake/scripts/linux/Macros.cmake b/cmake/scripts/linux/Macros.cmake index 9e8ebe6..37243a7 100644 --- a/cmake/scripts/linux/Macros.cmake +++ b/cmake/scripts/linux/Macros.cmake @@ -65,7 +65,7 @@ function(find_soname lib) set(link_lib -l${${lib}_LIBRARIES}) endif() endif() - execute_process(COMMAND ${CMAKE_C_COMPILER} -nostdlib -o /dev/null -Wl,-M ${link_lib} + execute_process(COMMAND ${CMAKE_C_COMPILER} -nostdlib -o /dev/null -Wl,-M ${link_lib} COMMAND grep LOAD.*${liblow} ERROR_QUIET OUTPUT_VARIABLE ${lib}_FILENAME) diff --git a/cmake/scripts/osx/ArchSetup.cmake b/cmake/scripts/osx/ArchSetup.cmake index d0c5506..9ba0596 100644 --- a/cmake/scripts/osx/ArchSetup.cmake +++ b/cmake/scripts/osx/ArchSetup.cmake @@ -36,5 +36,5 @@ list(APPEND DEPLIBS "-framework DiskArbitration" "-framework IOKit" "-framework CoreGraphics" "-framework CoreMedia" "-framework VideoToolbox") -set(CMAKE_OSX_DEPLOYMENT_TARGET 10.8) +set(CMAKE_OSX_DEPLOYMENT_TARGET 10.9) set(CMAKE_XCODE_ATTRIBUTE_CLANG_LINK_OBJC_RUNTIME OFF) diff --git a/cmake/scripts/windows/ArchSetup.cmake b/cmake/scripts/windows/ArchSetup.cmake index b3963a6..b94842f 100644 --- a/cmake/scripts/windows/ArchSetup.cmake +++ b/cmake/scripts/windows/ArchSetup.cmake @@ -87,9 +87,9 @@ foreach(_lib ${_nodefaultlibs_DEBUG}) endforeach() # DELAYLOAD option -set(_delayloadlibs zlib.dll libmysql.dll libxslt.dll dnssd.dll dwmapi.dll ssh.dll sqlite3.dll - avcodec-57.dll avfilter-6.dll avformat-57.dll avutil-55.dll - postproc-54.dll swresample-2.dll swscale-4.dll d3dcompiler_47.dll) +set(_delayloadlibs zlib.dll libmysql.dll libxslt.dll dnssd.dll dwmapi.dll sqlite3.dll + avcodec-58.dll avfilter-7.dll avformat-58.dll avutil-56.dll + postproc-55.dll swresample-3.dll swscale-5.dll d3dcompiler_47.dll) foreach(_lib ${_delayloadlibs}) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /DELAYLOAD:\"${_lib}\"") endforeach() diff --git a/cmake/scripts/windowsstore/ArchSetup.cmake b/cmake/scripts/windowsstore/ArchSetup.cmake index a663bb9..e3e46e7 100644 --- a/cmake/scripts/windowsstore/ArchSetup.cmake +++ b/cmake/scripts/windowsstore/ArchSetup.cmake @@ -1,5 +1,5 @@ # Minimum SDK version we support -set(VS_MINIMUM_SDK_VERSION 10.0.14393.0) +set(VS_MINIMUM_SDK_VERSION 10.0.16299.0) if(CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION VERSION_LESS VS_MINIMUM_SDK_VERSION) message(FATAL_ERROR "Detected Windows SDK version is ${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}.\n" @@ -25,7 +25,7 @@ elseif(_ARM_) else() message(FATAL_ERROR "Unsupported architecture") endif() - + unset(_X86_) unset(_AMD64_) unset(_ARM_) @@ -51,7 +51,7 @@ set(MINGW_LIBS_DIR ${CMAKE_SOURCE_DIR}/${DEPS_FOLDER_RELATIVE}/mingwlibs/win10-$ # mingw libs list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${MINGW_LIBS_DIR}) list(APPEND CMAKE_SYSTEM_LIBRARY_PATH ${MINGW_LIBS_DIR}/bin) -# dependencies +# dependencies list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${DEPENDENCIES_DIR}) # for python set(PYTHON_INCLUDE_DIR ${DEPENDENCIES_DIR}/include/python) @@ -63,6 +63,7 @@ add_options(CXX ALL_BUILDS "/wd\"4996\"") add_options(CXX ALL_BUILDS "/wd\"4146\"") add_options(CXX ALL_BUILDS "/wd\"4251\"") add_options(CXX ALL_BUILDS "/wd\"4668\"") +add_options(CXX ALL_BUILDS "/wd\"5033\"") set(ARCH_DEFINES -D_WINDOWS -DTARGET_WINDOWS -DTARGET_WINDOWS_STORE -DXBMC_EXPORT -DMS_UWP) if(NOT SDK_TARGET_ARCH STREQUAL arm) list(APPEND ARCH_DEFINES -D__SSE__ -D__SSE2__) @@ -78,7 +79,7 @@ set(SYSTEM_DEFINES -DWIN32_LEAN_AND_MEAN -DNOMINMAX -DHAS_DX -D__STDC_CONSTANT_M list(APPEND SYSTEM_DEFINES -DHAS_WIN10_NETWORK) # The /MP option enables /FS by default. -set(CMAKE_CXX_FLAGS "/MP ${CMAKE_CXX_FLAGS} /ZW /EHsc /await") +set(CMAKE_CXX_FLAGS "/MP ${CMAKE_CXX_FLAGS} /EHsc /await /std:c++latest") # Google Test needs to use shared version of runtime libraries set(gtest_force_shared_crt ON CACHE STRING "" FORCE) @@ -90,20 +91,10 @@ set(gtest_force_shared_crt ON CACHE STRING "" FORCE) link_directories(${MINGW_LIBS_DIR}/lib ${DEPENDENCIES_DIR}/lib) -list(APPEND DEPLIBS d3d11.lib WS2_32.lib dxguid.lib dloadhelper.lib) -if(ARCH STREQUAL win32 OR ARCH STREQUAL x64) - list(APPEND DEPLIBS DInput8.lib DSound.lib winmm.lib Mpr.lib Iphlpapi.lib PowrProf.lib setupapi.lib dwmapi.lib) -endif() -# NODEFAULTLIB option +list(APPEND DEPLIBS d3d11.lib WS2_32.lib dxguid.lib dloadhelper.lib WindowsApp.lib) -set(_nodefaultlibs_RELEASE libcmt) -set(_nodefaultlibs_DEBUG libcmt msvcrt) -foreach(_lib ${_nodefaultlibs_RELEASE}) - set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:\"${_lib}\"") -endforeach() -foreach(_lib ${_nodefaultlibs_DEBUG}) - set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:\"${_lib}\"") -endforeach() +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /WINMD:NO") +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:msvcrt /DEBUG:FASTLINK /OPT:NOREF /OPT:NOICF") # Make the Release version create a PDB set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi") @@ -117,13 +108,6 @@ set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} /ignore:4264") if(CMAKE_GENERATOR MATCHES "Visual Studio") set_property(GLOBAL PROPERTY USE_FOLDERS ON) - - # Generate a batch file that opens Visual Studio with the necessary env variables set. - file(WRITE ${CMAKE_BINARY_DIR}/kodi-sln.bat - "@echo off\n" - "set KODI_HOME=%~dp0\n" - "set PATH=%~dp0\\system\n" - "start %~dp0\\${PROJECT_NAME}.sln") endif() # -------- Build options --------- diff --git a/cmake/scripts/windowsstore/Macros.cmake b/cmake/scripts/windowsstore/Macros.cmake index 7240138..de89c62 100644 --- a/cmake/scripts/windowsstore/Macros.cmake +++ b/cmake/scripts/windowsstore/Macros.cmake @@ -70,11 +70,11 @@ macro(winstore_set_assets target) set_property(SOURCE ${ASSET_FILES} PROPERTY VS_DEPLOYMENT_CONTENT 1) set_property(SOURCE ${ASSET_FILES} PROPERTY VS_DEPLOYMENT_LOCATION "media") source_group("media" FILES ${ASSET_FILES}) - set(RESOURCES ${RESOURCES} ${ASSET_FILES} + set(RESOURCES ${RESOURCES} ${ASSET_FILES} "${CMAKE_SOURCE_DIR}/tools/windows/packaging/uwp/kodi_temp_key.pfx") - set(LICENSE_FILES - ${CMAKE_SOURCE_DIR}/LICENSE.GPL - ${CMAKE_SOURCE_DIR}/copying.txt + + set(LICENSE_FILES + ${CMAKE_SOURCE_DIR}/LICENSE.md ${CMAKE_SOURCE_DIR}/privacy-policy.txt) if(EXISTS "${CMAKE_SOURCE_DIR}/known_issues.txt") list(APPEND LICENSE_FILES ${CMAKE_SOURCE_DIR}/known_issues.txt) @@ -108,7 +108,7 @@ macro(add_deployment_content_group path link match exclude) " ${_link}%(RecursiveDir)%(FileName)%(Extension)\n" " true\n" " \n") -endmacro() +endmacro() macro(winstore_append_props target) # exclude debug dlls from packaging @@ -126,7 +126,7 @@ macro(winstore_append_props target) " \n" " \n") endforeach(_dll DEBUG_DLLS) - + add_deployment_content_group($(BuildRootPath)/dlls "" *.dll "${DEBUG_DLLS_EXCLUDE}") add_deployment_content_group($(BuildRootPath)/system system **/* "$(BuildRootPath)/**/shaders/**") add_deployment_content_group($(BuildRootPath)/system/shaders system/shaders **/*.fx "") @@ -179,4 +179,4 @@ macro(winstore_add_target_properties target) winstore_set_assets(${target}) winstore_generate_manifest(${target}) winstore_append_props(${target}) -endmacro() \ No newline at end of file +endmacro() -- cgit v1.2.3