summaryrefslogtreecommitdiffstats
path: root/project/cmake/scripts/osx
diff options
context:
space:
mode:
Diffstat (limited to 'project/cmake/scripts/osx')
-rw-r--r--project/cmake/scripts/osx/ArchSetup.cmake34
-rw-r--r--project/cmake/scripts/osx/ExtraTargets.cmake3
-rw-r--r--project/cmake/scripts/osx/Install.cmake40
-rw-r--r--project/cmake/scripts/osx/Macros.cmake118
-rw-r--r--project/cmake/scripts/osx/PathSetup.cmake32
5 files changed, 0 insertions, 227 deletions
diff --git a/project/cmake/scripts/osx/ArchSetup.cmake b/project/cmake/scripts/osx/ArchSetup.cmake
deleted file mode 100644
index 3047863..0000000
--- a/project/cmake/scripts/osx/ArchSetup.cmake
+++ /dev/null
@@ -1,34 +0,0 @@
1if(NOT CMAKE_TOOLCHAIN_FILE)
2 message(FATAL_ERROR "CMAKE_TOOLCHAIN_FILE required for osx. See ${PROJECT_SOURCE_DIR}/README.md")
3endif()
4
5set(CORE_MAIN_SOURCE ${CORE_SOURCE_DIR}/xbmc/platform/posix/main.cpp
6 ${CORE_SOURCE_DIR}/xbmc/platform/darwin/osx/SDLMain.mm
7 ${CORE_SOURCE_DIR}/xbmc/platform/darwin/osx/SDLMain.h)
8
9set(ARCH_DEFINES -D_LINUX -DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX)
10set(SYSTEM_DEFINES -D_REENTRANT -D_FILE_DEFINED -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
11 -D__STDC_CONSTANT_MACROS)
12set(PLATFORM_DIR linux)
13set(CMAKE_SYSTEM_NAME Darwin)
14if(WITH_ARCH)
15 set(ARCH ${WITH_ARCH})
16else()
17 if(CPU STREQUAL x86_64 OR CPU STREQUAL i386)
18 set(ARCH x86-osx)
19 set(NEON False)
20 else()
21 message(SEND_ERROR "Unknown CPU: ${CPU}")
22 endif()
23endif()
24
25find_package(CXX11 REQUIRED)
26
27list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${NATIVEPREFIX})
28
29list(APPEND DEPLIBS "-framework DiskArbitration" "-framework IOKit"
30 "-framework IOSurface" "-framework SystemConfiguration"
31 "-framework ApplicationServices" "-framework AppKit"
32 "-framework CoreAudio" "-framework AudioToolbox"
33 "-framework CoreGraphics" "-framework CoreMedia"
34 "-framework VideoToolbox")
diff --git a/project/cmake/scripts/osx/ExtraTargets.cmake b/project/cmake/scripts/osx/ExtraTargets.cmake
deleted file mode 100644
index ed9c089..0000000
--- a/project/cmake/scripts/osx/ExtraTargets.cmake
+++ /dev/null
@@ -1,3 +0,0 @@
1# XBMCHelper
2add_subdirectory(${CORE_SOURCE_DIR}/tools/EventClients/Clients/OSXRemote build/XBMCHelper)
3add_dependencies(${APP_NAME_LC} XBMCHelper)
diff --git a/project/cmake/scripts/osx/Install.cmake b/project/cmake/scripts/osx/Install.cmake
deleted file mode 100644
index 3924ccf..0000000
--- a/project/cmake/scripts/osx/Install.cmake
+++ /dev/null
@@ -1,40 +0,0 @@
1# OSX packaging
2
3set(PACKAGE_OUTPUT_DIR ${CMAKE_BINARY_DIR}/build/${CORE_BUILD_CONFIG})
4
5configure_file(${CORE_SOURCE_DIR}/xbmc/platform/darwin/osx/Info.plist.in
6 ${CMAKE_BINARY_DIR}/xbmc/platform/darwin/osx/Info.plist @ONLY)
7execute_process(COMMAND perl -p -i -e "s/r####/${APP_SCMID}/" ${CMAKE_BINARY_DIR}/xbmc/platform/darwin/osx/Info.plist)
8
9add_custom_target(bundle
10 COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${APP_NAME_LC}> ${PACKAGE_OUTPUT_DIR}/${APP_NAME}
11 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/DllPaths_generated.h
12 ${CMAKE_BINARY_DIR}/xbmc/DllPaths_generated.h
13 COMMAND "ACTION=build"
14 "TARGET_BUILD_DIR=${PACKAGE_OUTPUT_DIR}"
15 "TARGET_NAME=${APP_NAME}.app"
16 "APP_NAME=${APP_NAME}"
17 "SRCROOT=${CMAKE_BINARY_DIR}"
18 ${CORE_SOURCE_DIR}/tools/darwin/Support/CopyRootFiles-osx.command
19 COMMAND "XBMC_DEPENDS=${DEPENDS_PATH}"
20 "TARGET_BUILD_DIR=${PACKAGE_OUTPUT_DIR}"
21 "TARGET_NAME=${APP_NAME}.app"
22 "APP_NAME=${APP_NAME}"
23 "FULL_PRODUCT_NAME=${APP_NAME}.app"
24 "SRCROOT=${CMAKE_BINARY_DIR}"
25 ${CORE_SOURCE_DIR}/tools/darwin/Support/copyframeworks-osx.command)
26set_target_properties(bundle PROPERTIES FOLDER "Build Utilities")
27add_dependencies(bundle ${APP_NAME_LC})
28
29configure_file(${CORE_SOURCE_DIR}/tools/darwin/packaging/osx/mkdmg-osx.sh.in
30 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx/mkdmg-osx.sh @ONLY)
31
32add_custom_target(dmg
33 COMMAND ${CMAKE_COMMAND} -E copy_directory ${CORE_SOURCE_DIR}/tools/darwin/packaging/osx/
34 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx/
35 COMMAND ${CMAKE_COMMAND} -E copy_directory ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/osx/
36 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/media/osx/
37 COMMAND ./mkdmg-osx.sh ${CORE_BUILD_CONFIG}
38 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx)
39set_target_properties(dmg PROPERTIES FOLDER "Build Utilities")
40add_dependencies(dmg bundle)
diff --git a/project/cmake/scripts/osx/Macros.cmake b/project/cmake/scripts/osx/Macros.cmake
deleted file mode 100644
index 52f87d1..0000000
--- a/project/cmake/scripts/osx/Macros.cmake
+++ /dev/null
@@ -1,118 +0,0 @@
1function(core_link_library lib wraplib)
2 if(CMAKE_GENERATOR MATCHES "Unix Makefiles" OR CMAKE_GENERATOR STREQUAL Ninja)
3 set(wrapper_obj cores/dll-loader/exports/CMakeFiles/wrapper.dir/wrapper.c.o)
4 elseif(CMAKE_GENERATOR MATCHES "Xcode")
5 set(wrapper_obj cores/dll-loader/exports/kodi.build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/wrapper.build/Objects-$(CURRENT_VARIANT)/$(CURRENT_ARCH)/wrapper.o)
6 else()
7 message(FATAL_ERROR "Unsupported generator in core_link_library")
8 endif()
9
10 set(export -bundle -undefined dynamic_lookup -read_only_relocs suppress
11 -Wl,-alias_list,${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cores/dll-loader/exports/wrapper.def
12 ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/${wrapper_obj})
13 set(extension ${CMAKE_SHARED_MODULE_SUFFIX})
14 set(check_arg "")
15 if(TARGET ${lib})
16 set(target ${lib})
17 set(link_lib $<TARGET_FILE:${lib}>)
18 set(check_arg ${ARGV2})
19 set(data_arg ${ARGV3})
20
21 # iOS: EFFECTIVE_PLATFORM_NAME is not resolved
22 # http://public.kitware.com/pipermail/cmake/2016-March/063049.html
23 if(CORE_SYSTEM_NAME STREQUAL ios AND CMAKE_GENERATOR STREQUAL Xcode)
24 get_target_property(dir ${lib} BINARY_DIR)
25 set(link_lib ${dir}/${CORE_BUILD_CONFIG}/${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX})
26 endif()
27 else()
28 set(target ${ARGV2})
29 set(link_lib ${lib})
30 set(check_arg ${ARGV3})
31 set(data_arg ${ARGV4})
32 endif()
33 if(check_arg STREQUAL export)
34 set(export ${export}
35 -Wl,--version-script=${ARGV3})
36 elseif(check_arg STREQUAL extras)
37 foreach(arg ${data_arg})
38 list(APPEND export ${arg})
39 endforeach()
40 elseif(check_arg STREQUAL archives)
41 set(extra_libs ${data_arg})
42 endif()
43 get_filename_component(dir ${wraplib} DIRECTORY)
44
45 # We can't simply pass the linker flags to the args section of the custom command
46 # because cmake will add quotes around it (and the linker will fail due to those).
47 # We need to do this handstand first ...
48 string(REPLACE " " ";" CUSTOM_COMMAND_ARGS_LDFLAGS ${CMAKE_SHARED_LINKER_FLAGS})
49
50 add_custom_command(OUTPUT ${wraplib}-${ARCH}${extension}
51 COMMAND ${CMAKE_COMMAND} -E make_directory ${dir}
52 COMMAND ${CMAKE_C_COMPILER}
53 ARGS ${CUSTOM_COMMAND_ARGS_LDFLAGS} ${export} -Wl,-force_load ${link_lib} ${extra_libs}
54 -o ${CMAKE_BINARY_DIR}/${wraplib}-${ARCH}${extension}
55 DEPENDS ${target} wrapper.def wrapper
56 VERBATIM)
57
58 get_filename_component(libname ${wraplib} NAME_WE)
59 add_custom_target(wrap_${libname} ALL DEPENDS ${wraplib}-${ARCH}${extension})
60 set_target_properties(wrap_${libname} PROPERTIES FOLDER lib/wrapped)
61 add_dependencies(${APP_NAME_LC}-libraries wrap_${libname})
62
63 set(LIBRARY_FILES ${LIBRARY_FILES} ${CMAKE_BINARY_DIR}/${wraplib}-${ARCH}${extension} CACHE STRING "" FORCE)
64endfunction()
65
66function(find_soname lib)
67 cmake_parse_arguments(arg "REQUIRED" "" "" ${ARGN})
68
69 string(TOLOWER ${lib} liblow)
70 if(${lib}_LDFLAGS)
71 set(link_lib "${${lib}_LDFLAGS}")
72 else()
73 set(link_lib "${${lib}_LIBRARIES}")
74 endif()
75
76 execute_process(COMMAND ${CMAKE_C_COMPILER} -print-search-dirs
77 COMMAND fgrep libraries:
78 COMMAND sed "s/[^=]*=\\(.*\\)/\\1/"
79 COMMAND sed "s/:/ /g"
80 ERROR_QUIET
81 OUTPUT_VARIABLE cc_lib_path
82 OUTPUT_STRIP_TRAILING_WHITESPACE)
83 execute_process(COMMAND echo ${link_lib}
84 COMMAND sed "s/-L[ ]*//g"
85 COMMAND sed "s/-l[^ ]*//g"
86 ERROR_QUIET
87 OUTPUT_VARIABLE env_lib_path
88 OUTPUT_STRIP_TRAILING_WHITESPACE)
89
90 foreach(path ${cc_lib_path} ${env_lib_path})
91 if(IS_DIRECTORY ${path})
92 execute_process(COMMAND ls -- ${path}/lib${liblow}.dylib
93 ERROR_QUIET
94 OUTPUT_VARIABLE lib_file
95 OUTPUT_STRIP_TRAILING_WHITESPACE)
96 else()
97 set(lib_file ${path})
98 endif()
99 if(lib_file)
100 # we want the path/name that is embedded in the dylib
101 execute_process(COMMAND otool -L ${lib_file}
102 COMMAND grep -v lib${liblow}.dylib
103 COMMAND grep ${liblow}
104 COMMAND awk "{V=1; print $V}"
105 ERROR_QUIET
106 OUTPUT_VARIABLE filename
107 OUTPUT_STRIP_TRAILING_WHITESPACE)
108 get_filename_component(${lib}_SONAME "${filename}" NAME)
109 if(VERBOSE)
110 message(STATUS "${lib} soname: ${${lib}_SONAME}")
111 endif()
112 endif()
113 endforeach()
114 if(arg_REQUIRED AND NOT ${lib}_SONAME)
115 message(FATAL_ERROR "Could not find dynamically loadable library ${lib}")
116 endif()
117 set(${lib}_SONAME ${${lib}_SONAME} PARENT_SCOPE)
118endfunction()
diff --git a/project/cmake/scripts/osx/PathSetup.cmake b/project/cmake/scripts/osx/PathSetup.cmake
deleted file mode 100644
index 071dfd4..0000000
--- a/project/cmake/scripts/osx/PathSetup.cmake
+++ /dev/null
@@ -1,32 +0,0 @@
1if(NOT prefix)
2 set(prefix ${DEPENDS_PATH})
3endif()
4if(NOT exec_prefix)
5 set(exec_prefix ${prefix})
6endif()
7if(NOT libdir)
8 set(libdir ${prefix}/lib)
9endif()
10if(NOT bindir)
11 set(bindir ${prefix}/bin)
12endif()
13if(NOT includedir)
14 set(includedir ${prefix}/include)
15endif()
16if(NOT datarootdir)
17 set(datarootdir ${prefix}/share)
18endif()
19if(NOT datadir)
20 set(datadir ${datarootdir})
21endif()
22
23list(APPEND final_message "-- PATH config --")
24list(APPEND final_message "Prefix: ${prefix}")
25list(APPEND final_message "Libdir: ${libdir}")
26list(APPEND final_message "Bindir: ${bindir}")
27list(APPEND final_message "Includedir: ${includedir}")
28list(APPEND final_message "Datarootdir: ${datarootdir}")
29list(APPEND final_message "Datadir: ${datadir}")
30
31set(PATH_DEFINES -DBIN_INSTALL_PATH=\"${libdir}/kodi\"
32 -DINSTALL_PATH=\"${datarootdir}/kodi\")