aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--project/cmake/CMakeLists.txt18
-rw-r--r--project/cmake/installdata/darwin/packaging.txt3
-rw-r--r--project/cmake/installdata/darwin/runtime.txt1
-rw-r--r--project/cmake/modules/FindLibDvd.cmake2
-rw-r--r--project/cmake/modules/FindTexturePacker.cmake7
-rw-r--r--project/cmake/scripts/darwin/archsetup.cmake6
-rw-r--r--project/cmake/scripts/darwin/install.cmake38
-rw-r--r--project/cmake/scripts/darwin/macros.cmake12
-rwxr-xr-xtools/buildsteps/osx64/make-binary-addons8
-rwxr-xr-xtools/buildsteps/osx64/package11
-rwxr-xr-xtools/darwin/packaging/osx/mkdmg-osx.sh.in7
-rw-r--r--tools/depends/target/cmakebuildsys/Makefile2
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: