Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[docs] Update README.osx #11202

Merged
merged 3 commits into from
Dec 23, 2016
Merged

[docs] Update README.osx #11202

merged 3 commits into from
Dec 23, 2016

Conversation

fetzerch
Copy link
Member

@fetzerch fetzerch commented Dec 17, 2016

Explain how to use cmake to generate the xcode project files.

I've also changed the file to markdown. Is that something we want, or should I change it back to plain text?

Preview:

Will update the others once we agreed on the format and style.

ping: @Memphiz, @hudokkow, @wsnipex

@Memphiz
Copy link
Member

Memphiz commented Dec 18, 2016

I like the markdown - well done with the adaptions imo - thx

@fetzerch
Copy link
Member Author

Thanks. Ok osx, ios fully done.

@Memphiz can you check if the versions in the ios doc are ok? I added sierra and el capitan. From what I understood Xcode 8 is not supported until you PR goes in? Also I removed the line recommending ios sdk 8.1 because the sdk version should match the device people want to build for.

@fetzerch
Copy link
Member Author

Any volunteers for one of the other files? :)

@hudokkow
Copy link
Member

I can do linux/Ubuntu/RPi. Just not today probably.

@stefansaraev
Copy link
Contributor

https://github.com/xbmc/xbmc/tree/master/Kodi.xcodeproj seems seems not to used now

@Memphiz
Copy link
Member

Memphiz commented Dec 18, 2016

@fetzerch nope the sdk advise needs to stay. There were issues when people used SDKs that were not the ones i developed for. For example the external screen behavior when using airplay mirroring behaves different when using different SDK versions regardless of the used deployment target (which stayed the same of course). At least that was the case around ios 8.x SDKs (might be no issue with newer SDKs anymore but i didn't check that). So while i never thought that would be the case - Apple developers screwed up at times ;).

@fetzerch
Copy link
Member Author

@Memphiz Thanks for the explaination, added it back. Any other things you'd want me to fix? Otherwise we can get it in.

Copy link
Member

@Memphiz Memphiz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good beside my remarks - thx alot for this. I think the next PR would be removing the Xcode project as it has no value now anymore.

Kodi for iOS is composed of a main binary with numerous dynamic libraries and
codecs that support a multitude of music and video formats.

The minimum version of iOS you need to run(!) Kodi is 5.1.1 atm.

This comment was marked as spam.


./configure --host=arm-apple-darwin --with-sdk=8.0

Ensure that you also adapt the Xcode project to use this SDK version.

This comment was marked as spam.

cd $HOME/Kodi/build
/Users/Shared/xbmc-depends/buildtools-native/bin/cmake -G Xcode -DCMAKE_TOOLCHAIN_FILE=/Users/Shared/xbmc-depends/iphoneos9.3_armv7-target/share/Toolchain.cmake ../project/cmake

The toolchain file location differs depending on your iOS and SDK version.

This comment was marked as spam.

Kodi maintains a set of binary addons (PVR clients, Visualizations, Audio DSP
plugins and more). They can be built as shown below:

make -C target/binary-addons

This comment was marked as spam.


**NOTE**: If you only want to build specific addons you can specify like this:

make -C target/binary-addons ADDONS="pvr.hts pvr.dvblink"

This comment was marked as spam.


./configure --host=arm-apple-darwin --with-sdk=10.9

Ensure that you also adapt the Xcode project to use this SDK version.

This comment was marked as spam.

Kodi maintains a set of binary addons (PVR clients, Visualizations, Audio DSP
plugins and more). They can be built as shown below:

make -C target/binary-addons

This comment was marked as spam.


**NOTE**: If you only want to build specific addons you can specify like this:

make -C target/binary-addons ADDONS="pvr.hts pvr.dvblink"

This comment was marked as spam.

cd $HOME/Kodi/build
/Users/Shared/xbmc-depends/buildtools-native/bin/cmake -G Xcode -DCMAKE_TOOLCHAIN_FILE=/Users/Shared/xbmc-depends/macosx10.12_x86_64-target/share/Toolchain.cmake ../project/cmake

The toolchain file location differs depending on your macOS and SDK version.

This comment was marked as spam.

xcodebuild, triggered by CMake:

cd $HOME/Kodi/build
cmake --build . --config "Debug" -- -verbose -jobs $(sysctl -n hw.ncpu)

This comment was marked as spam.

@fetzerch
Copy link
Member Author

Thanks, I've tried to fix all comments, but i'm not sure with the --with-sdk. Need to check if the sdk version is put into the toolchain file and picked up from there automatically or if there's further work needed.

Dropping the xcode project is done in: #11217

@fetzerch
Copy link
Member Author

fetzerch commented Dec 22, 2016

@Memphiz: I've installed the 10.9 sdk now from https://github.com/phracker/MacOSX-SDKs and --with-sdk seems to do the trick. cmake picks it up from the toolchain file. Unfortunately it compiles only when generating a make file project. With xcodebuild and xcode i get this. Any idea?

=== BUILD TARGET XBMCHelper OF PROJECT kodi WITH CONFIGURATION Release ===

Check dependencies

Ld /Users/jcf/develop/kodi/kodi-build-xcode-old/tools/darwin/runtime/XBMCHelper normal x86_64
    cd /Users/jcf/develop/kodi/kodi
    export MACOSX_DEPLOYMENT_TARGET=10.9
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -L/Users/jcf/develop/kodi/kodi-build-xcode-old/tools/darwin/runtime -F/Users/jcf/develop/kodi/kodi-build-xcode-old/tools/darwin/runtime -filelist /Users/jcf/develop/kodi/kodi-build-xcode-old/build/XBMCHelper/kodi.build/Release/XBMCHelper.build/Objects-normal/x86_64/XBMCHelper.LinkFileList -mmacosx-version-min=10.9 -Xlinker -object_path_lto -Xlinker /Users/jcf/develop/kodi/kodi-build-xcode-old/build/XBMCHelper/kodi.build/Release/XBMCHelper.build/Objects-normal/x86_64/XBMCHelper_lto.o -fobjc-link-runtime -L/Users/Shared/xbmc-depends/macosx10.9_x86_64-target/lib -Wl,-search_paths_first -arch x86_64 -mmacosx-version-min=10.8 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -stdlib=libc++ -Wl,-headerpad_max_install_names -framework IOKit -framework Carbon -framework Cocoa -Xlinker -dependency_info -Xlinker /Users/jcf/develop/kodi/kodi-build-xcode-old/build/XBMCHelper/kodi.build/Release/XBMCHelper.build/Objects-normal/x86_64/XBMCHelper_dependency_info.dat -o /Users/jcf/develop/kodi/kodi-build-xcode-old/tools/darwin/runtime/XBMCHelper
Undefined symbols for architecture x86_64:
  "_objc_readClassPair", referenced from:
      __ARCLite__load() in libarclite_macosx.a(arclite.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** BUILD FAILED **

I'm on sierra with Xcode 8.2.

@Memphiz
Copy link
Member

Memphiz commented Dec 22, 2016

No idea - but what is strange ist that deployment target is set to 10.8 in cflags (which is correct) but to 10.9 via export MACOSX_DEPLOYMENT_TARGET (which is wrong).
Also this error is for XBMCHelper right? I think it has a static xcode project still no? ARC is some sort of automated garbage collection afair...

@fetzerch
Copy link
Member Author

Thanks, sorted it out. Now it's really just building depends with the --with-sdk parameter and using the respective toolchain file.

btw: any chance of rebasing #10539 now that krypton is branched?

@fetzerch fetzerch merged commit 0f20cc2 into xbmc:master Dec 23, 2016
@fetzerch fetzerch deleted the doc_osx branch December 23, 2016 11:41
@MartijnKaijser MartijnKaijser modified the milestone: L 18.0-alpha1 Dec 27, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants