diff options
-rw-r--r-- | project/cmake/CMakeLists.txt | 18 | ||||
-rw-r--r-- | project/cmake/installdata/darwin/packaging.txt | 3 | ||||
-rw-r--r-- | project/cmake/installdata/darwin/runtime.txt | 1 | ||||
-rw-r--r-- | project/cmake/modules/FindLibDvd.cmake | 2 | ||||
-rw-r--r-- | project/cmake/modules/FindTexturePacker.cmake | 7 | ||||
-rw-r--r-- | project/cmake/scripts/darwin/archsetup.cmake | 6 | ||||
-rw-r--r-- | project/cmake/scripts/darwin/install.cmake | 38 | ||||
-rw-r--r-- | project/cmake/scripts/darwin/macros.cmake | 12 | ||||
-rwxr-xr-x | tools/buildsteps/osx64/make-binary-addons | 8 | ||||
-rwxr-xr-x | tools/buildsteps/osx64/package | 11 | ||||
-rwxr-xr-x | tools/darwin/packaging/osx/mkdmg-osx.sh.in | 7 | ||||
-rw-r--r-- | tools/depends/target/cmakebuildsys/Makefile | 2 |
12 files changed, 86 insertions, 29 deletions
diff --git a/project/cmake/CMakeLists.txt b/project/cmake/CMakeLists.txt index 203dea49d4..40f9d44dce 100644 --- a/project/cmake/CMakeLists.txt +++ b/project/cmake/CMakeLists.txt @@ -281,14 +281,14 @@ if(CORE_SYSTEM_NAME STREQUAL linux) core_link_library(sse4 system/libsse4) endif() -core_link_library(XBMC_addon addons/library.xbmc.addon/libXBMC_addon) -core_link_library(XBMC_codec addons/library.xbmc.codec/libXBMC_codec) -core_link_library(XBMC_pvr addons/library.xbmc.pvr/libXBMC_pvr) -core_link_library(KODI_adsp addons/library.kodi.adsp/libKODI_adsp) -core_link_library(KODI_audioengine addons/library.kodi.audioengine/libKODI_audioengine) -core_link_library(KODI_guilib addons/library.kodi.guilib/libKODI_guilib) -core_link_library(KODI_inputstream addons/library.kodi.inputstream/libKODI_inputstream) -core_link_library(KODI_peripheral addons/library.kodi.peripheral/libKODI_peripheral) +core_link_library(XBMC_addon addons/library.xbmc.addon/libXBMC_addon nowrap) +core_link_library(XBMC_codec addons/library.xbmc.codec/libXBMC_codec nowrap) +core_link_library(XBMC_pvr addons/library.xbmc.pvr/libXBMC_pvr nowrap) +core_link_library(KODI_adsp addons/library.kodi.adsp/libKODI_adsp nowrap) +core_link_library(KODI_audioengine addons/library.kodi.audioengine/libKODI_audioengine nowrap) +core_link_library(KODI_guilib addons/library.kodi.guilib/libKODI_guilib nowrap) +core_link_library(KODI_inputstream addons/library.kodi.inputstream/libKODI_inputstream nowrap) +core_link_library(KODI_peripheral addons/library.kodi.peripheral/libKODI_peripheral nowrap) file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/system/players/VideoPlayer) add_custom_target(wrap-libraries ALL DEPENDS ${WRAP_FILES}) @@ -353,7 +353,7 @@ if(ENABLE_X11 AND XRANDR_FOUND) endif() # XBMCHelper -if(CORE_SYSTEM_TYPE STREQUAL darwin) +if(CORE_SYSTEM_NAME STREQUAL darwin) add_subdirectory(${CORE_SOURCE_DIR}/tools/EventClients/Clients/OSXRemote build/XBMCHelper) endif() diff --git a/project/cmake/installdata/darwin/packaging.txt b/project/cmake/installdata/darwin/packaging.txt new file mode 100644 index 0000000000..8cb2245f38 --- /dev/null +++ b/project/cmake/installdata/darwin/packaging.txt @@ -0,0 +1,3 @@ +LICENSE.gpl +xbmc/platform/darwin/Credits.html +tools/darwin/packaging/media/osx/icon.iconset/* diff --git a/project/cmake/installdata/darwin/runtime.txt b/project/cmake/installdata/darwin/runtime.txt index e1bb711c9d..3bb546754e 100644 --- a/project/cmake/installdata/darwin/runtime.txt +++ b/project/cmake/installdata/darwin/runtime.txt @@ -1 +1,2 @@ tools/darwin/runtime/preflight +tools/darwin/runtime/org.xbmc.helper.plist diff --git a/project/cmake/modules/FindLibDvd.cmake b/project/cmake/modules/FindLibDvd.cmake index f2817738ee..bd3a2212da 100644 --- a/project/cmake/modules/FindLibDvd.cmake +++ b/project/cmake/modules/FindLibDvd.cmake @@ -93,6 +93,8 @@ if(NOT WIN32) core_link_library(${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdnav.a system/players/VideoPlayer/libdvdnav dvdnav) + set(WRAP_FILES ${WRAP_FILES} PARENT_SCOPE) + set(LIBDVD_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include) set(LIBDVD_LIBRARIES ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdnav.a ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.a) diff --git a/project/cmake/modules/FindTexturePacker.cmake b/project/cmake/modules/FindTexturePacker.cmake index 2229ff79de..1758dba5d8 100644 --- a/project/cmake/modules/FindTexturePacker.cmake +++ b/project/cmake/modules/FindTexturePacker.cmake @@ -16,6 +16,13 @@ if(NOT TARGET TexturePacker::TexturePacker) add_executable(TexturePacker::TexturePacker IMPORTED GLOBAL) set_target_properties(TexturePacker::TexturePacker PROPERTIES IMPORTED_LOCATION "${CORE_SOURCE_DIR}/tools/TexturePacker/TexturePacker.exe") + elseif(APPLE) + find_program(TEXTUREPACKER_EXECUTABLE NAMES TexturePacker) + if(TEXTUREPACKER_EXECUTABLE) + add_executable(TexturePacker::TexturePacker IMPORTED GLOBAL) + set_target_properties(TexturePacker::TexturePacker PROPERTIES + IMPORTED_LOCATION "${TEXTUREPACKER_EXECUTABLE}") + endif() else() add_subdirectory(${CORE_SOURCE_DIR}/tools/depends/native/TexturePacker build/texturepacker) add_executable(TexturePacker::TexturePacker ALIAS TexturePacker) diff --git a/project/cmake/scripts/darwin/archsetup.cmake b/project/cmake/scripts/darwin/archsetup.cmake index 0f66831fa5..d4d7f35625 100644 --- a/project/cmake/scripts/darwin/archsetup.cmake +++ b/project/cmake/scripts/darwin/archsetup.cmake @@ -14,10 +14,8 @@ set(CMAKE_SYSTEM_NAME Darwin) if(WITH_ARCH) set(ARCH ${WITH_ARCH}) else() - if(CPU STREQUAL x86_64) - set(ARCH x86_64-apple-darwin) - elseif(CPU STREQUAL i386) - set(ARCH i386-apple-darwin) + if(CPU STREQUAL x86_64 OR CPU STREQUAL i386) + set(ARCH x86-osx) else() message(SEND_ERROR "Unknown CPU: ${CPU}") endif() diff --git a/project/cmake/scripts/darwin/install.cmake b/project/cmake/scripts/darwin/install.cmake index e69de29bb2..1f130d7a10 100644 --- a/project/cmake/scripts/darwin/install.cmake +++ b/project/cmake/scripts/darwin/install.cmake @@ -0,0 +1,38 @@ +# OSX packaging + +set(PACKAGE_OUTPUT_DIR ${CMAKE_BINARY_DIR}/build/${CORE_BUILD_CONFIG}) + +configure_file(${CORE_SOURCE_DIR}/xbmc/platform/darwin/osx/Info.plist.in + ${CMAKE_BINARY_DIR}/xbmc/platform/darwin/osx/Info.plist @ONLY) +execute_process(COMMAND perl -p -i -e "s/r####/${APP_SCMID}/" ${CMAKE_BINARY_DIR}/xbmc/platform/darwin/osx/Info.plist) + +add_custom_target(bundle + COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${APP_NAME_LC}> ${PACKAGE_OUTPUT_DIR}/${APP_NAME} + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/DllPaths_generated.h + ${CMAKE_BINARY_DIR}/xbmc/DllPaths_generated.h + COMMAND "ACTION=build" + "TARGET_BUILD_DIR=${PACKAGE_OUTPUT_DIR}" + "TARGET_NAME=${APP_NAME}.app" + "APP_NAME=${APP_NAME}" + "SRCROOT=${CMAKE_BINARY_DIR}" + ${CORE_SOURCE_DIR}/tools/darwin/Support/CopyRootFiles-osx.command + COMMAND "XBMC_DEPENDS=${DEPENDS_PATH}" + "TARGET_BUILD_DIR=${PACKAGE_OUTPUT_DIR}" + "TARGET_NAME=${APP_NAME}.app" + "APP_NAME=${APP_NAME}" + "FULL_PRODUCT_NAME=${APP_NAME}.app" + "SRCROOT=${CMAKE_BINARY_DIR}" + ${CORE_SOURCE_DIR}/tools/darwin/Support/copyframeworks-osx.command) +add_dependencies(bundle ${APP_NAME_LC} export-files pack-skins wrap-libraries generate_json_header XBMCHelper) + +configure_file(${CORE_SOURCE_DIR}/tools/darwin/packaging/osx/mkdmg-osx.sh.in + ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx/mkdmg-osx.sh @ONLY) + +add_custom_target(dmg + COMMAND ${CMAKE_COMMAND} -E copy_directory ${CORE_SOURCE_DIR}/tools/darwin/packaging/osx/ + ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx/ + COMMAND ${CMAKE_COMMAND} -E copy_directory ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/osx/ + ${CMAKE_BINARY_DIR}/tools/darwin/packaging/media/osx/ + COMMAND ./mkdmg-osx.sh ${CORE_BUILD_CONFIG} + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx) +add_dependencies(dmg bundle) diff --git a/project/cmake/scripts/darwin/macros.cmake b/project/cmake/scripts/darwin/macros.cmake index 4ee17c2ab5..f4e1ce8bce 100644 --- a/project/cmake/scripts/darwin/macros.cmake +++ b/project/cmake/scripts/darwin/macros.cmake @@ -10,6 +10,7 @@ function(core_link_library lib wraplib) set(export -bundle -undefined dynamic_lookup -read_only_relocs suppress -Wl,-alias_list,${CORE_BUILD_DIR}/cores/dll-loader/exports/wrapper.def ${CORE_BUILD_DIR}/${wrapper_obj}) + set(extension ${CMAKE_SHARED_MODULE_SUFFIX}) set(check_arg "") if(TARGET ${lib}) set(target ${lib}) @@ -26,7 +27,8 @@ function(core_link_library lib wraplib) set(export ${export} -Wl,--version-script=${ARGV3}) elseif(check_arg STREQUAL nowrap) - set(export ${data_arg}) + set(export -undefined dynamic_lookup -dynamiclib ${data_arg}) + set(extension ${CMAKE_SHARED_LIBRARY_SUFFIX}) elseif(check_arg STREQUAL extras) foreach(arg ${data_arg}) list(APPEND export ${arg}) @@ -39,19 +41,19 @@ function(core_link_library lib wraplib) # We need to do this handstand first ... separate_arguments(CUSTOM_COMMAND_ARGS_LDFLAGS UNIX_COMMAND "${CMAKE_SHARED_LINKER_FLAGS}") - add_custom_command(OUTPUT ${wraplib}-${ARCH}${CMAKE_SHARED_MODULE_SUFFIX} + add_custom_command(OUTPUT ${wraplib}-${ARCH}${extension} COMMAND ${CMAKE_COMMAND} -E make_directory ${dir} COMMAND ${CMAKE_C_COMPILER} ARGS ${CUSTOM_COMMAND_ARGS_LDFLAGS} ${export} -Wl,-force_load ${link_lib} - -o ${CMAKE_BINARY_DIR}/${wraplib}-${ARCH}${CMAKE_SHARED_MODULE_SUFFIX} + -o ${CMAKE_BINARY_DIR}/${wraplib}-${ARCH}${extension} DEPENDS ${target} wrapper.def wrapper VERBATIM) # Uncomment to create wrap_<lib> targets for debugging #get_filename_component(libname ${wraplib} NAME_WE) - #add_custom_target(wrap_${libname} ALL DEPENDS ${wraplib}-${ARCH}${CMAKE_SHARED_MODULE_SUFFIX}) + #add_custom_target(wrap_${libname} ALL DEPENDS ${wraplib}-${ARCH}${extension}) - list(APPEND WRAP_FILES ${wraplib}-${ARCH}${CMAKE_SHARED_MODULE_SUFFIX}) + list(APPEND WRAP_FILES ${wraplib}-${ARCH}${extension}) set(WRAP_FILES ${WRAP_FILES} PARENT_SCOPE) endfunction() diff --git a/tools/buildsteps/osx64/make-binary-addons b/tools/buildsteps/osx64/make-binary-addons index b27b07ddf6..1625f933d1 100755 --- a/tools/buildsteps/osx64/make-binary-addons +++ b/tools/buildsteps/osx64/make-binary-addons @@ -15,7 +15,13 @@ then do echo "building $addon" git clean -xffd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon - cd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon;make -j $BUILDTHREADS V=99 VERBOSE=1 || ALL_BINARY_ADDONS_BUILT="0" + + if [ "$CMAKE_BUILD" = true ]; then + INSTALL_PREFIX="../../../../../build/addons/" + else + INSTALL_PREFIX="../../../../../addons/" + fi + cd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon;make -j $BUILDTHREADS V=99 VERBOSE=1 INSTALL_PREFIX="$INSTALL_PREFIX" || ALL_BINARY_ADDONS_BUILT="0" done fi diff --git a/tools/buildsteps/osx64/package b/tools/buildsteps/osx64/package index 8464f0eb94..cc2b1018e0 100755 --- a/tools/buildsteps/osx64/package +++ b/tools/buildsteps/osx64/package @@ -4,12 +4,13 @@ XBMC_PLATFORM_DIR=osx64 # Temporarily disabled because packaging not implement for CMake if [ "$CMAKE_BUILD" = true ]; then - exit 0 + cd $WORKSPACE/build;make -j$BUILDTHREADS dmg + cd $WORKSPACE/build/tools/darwin/packaging/osx/ +else + cd $WORKSPACE/tools/darwin/packaging/osx/; sh ./mkdmg-osx.sh $Configuration fi -cd $WORKSPACE/tools/darwin/packaging/osx/; sh ./mkdmg-osx.sh $Configuration - #rename for upload -#e.x. kodi-20130314-8c2fb31-Frodo-x86_64.dmg +#e.x. kodi-20130314-8c2fb31-Frodo-x86_64.dmg UPLOAD_FILENAME="kodi-$(getBuildRevDateStr)-x86_64.dmg" -mv *.dmg $UPLOAD_FILENAME +mv *.dmg $WORKSPACE/tools/darwin/packaging/osx/$UPLOAD_FILENAME diff --git a/tools/darwin/packaging/osx/mkdmg-osx.sh.in b/tools/darwin/packaging/osx/mkdmg-osx.sh.in index 2a10ebc081..69b2de772d 100755 --- a/tools/darwin/packaging/osx/mkdmg-osx.sh.in +++ b/tools/darwin/packaging/osx/mkdmg-osx.sh.in @@ -34,11 +34,10 @@ fi ARCHIVE=${PACKAGE}_${VERSION}-${REVISION}_macosx-intel-${ARCHITECTURE} echo Creating $PACKAGE package version $VERSION revision $REVISION -${SUDO} rm -rf $DIRNAME/$ARCHIVE +rm -rf $DIRNAME/$ARCHIVE.dmg -if [ -e "/Volumes/$ARCHIVE" ] -then - umount /Volumes/$ARCHIVE +if [ -e "/Volumes/@APP_NAME_LC@" ]; then + umount /Volumes/@APP_NAME_LC@ fi #generate volume iconset diff --git a/tools/depends/target/cmakebuildsys/Makefile b/tools/depends/target/cmakebuildsys/Makefile index a51c80109c..60a88e153d 100644 --- a/tools/depends/target/cmakebuildsys/Makefile +++ b/tools/depends/target/cmakebuildsys/Makefile @@ -4,7 +4,7 @@ VERSION.TXT := $(XBMCROOT)/version.txt APP_NAME=$(shell awk '/APP_NAME/ {print tolower($$2)}' $(VERSION.TXT)) all: - mkdir $(XBMCROOT)/build + mkdir -p $(XBMCROOT)/build cd $(XBMCROOT)/build; $(CMAKE) $(XBMCROOT)/project/cmake clean: |