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

boost updates & cmake modernization #1166

Merged

Conversation

timblechmann
Copy link
Contributor

the following patches

  • update boost to 1.56
  • use boost.sync as semaphore implementation
  • modernize the cmake infrastructure & cleans up the messy osx bundle generation by implementing it the correct way. note: SC_SYMLINK_CLASSLIB is untested as it is said to be broken ... maybe the people who introduced it, could either fix or remove it

* use std::atomic instead of boost::atomic
* use boost::sync::semaphore instead of nova::semaphore
use sources and MACOSX_PACKAGE_LOCATION to generate bundle & copy binaries
with a POST_BUILD step
@bagong
Copy link
Contributor

bagong commented Aug 9, 2014

I get this build error:
[ 1%] Building CXX object server/plugins/CMakeFiles/BinaryOpUGens_supernova.dir/BinaryOpUGens.cpp.o
In file included from /Users/rainer/Projects/supercollider/source/server/plugins/BinaryOpUGens.cpp:22:
In file included from /Users/rainer/Projects/supercollider/source/include/plugin_interface/SC_PlugIn.h:24:
In file included from /Users/rainer/Projects/supercollider/source/include/plugin_interface/SC_World.h:27:
In file included from /Users/rainer/Projects/supercollider/source/include/plugin_interface/SC_SndBuf.h:27:
/Users/rainer/Projects/supercollider/source/external_libraries/nova-tt/nova-tt/rw_spinlock.hpp:28:10: fatal error:
'boost/atomic.hpp' file not found
#include "boost/atomic.hpp"
^
1 error generated.
make[2]: *** [server/plugins/CMakeFiles/BinaryOpUGens_supernova.dir/BinaryOpUGens.cpp.o] Error 1
make[1]: *** [server/plugins/CMakeFiles/BinaryOpUGens_supernova.dir/all] Error 2
make: *** [all] Error 2

@timblechmann
Copy link
Contributor Author

  • which platform?
  • are you using the bundled version of boost?

@bagong
Copy link
Contributor

bagong commented Aug 9, 2014

  • OSX 10.9.4
  • yes

@bagong
Copy link
Contributor

bagong commented Aug 9, 2014

Thanks! Now this:
Linking CXX static library libscsynth.a
[ 21%] Built target libscsynth
Scanning dependencies of target scsynth
[ 21%] Building CXX object server/scsynth/CMakeFiles/scsynth.dir/scsynth_main.cpp.o
Linking CXX executable scsynth
[ 21%] Built target scsynth
Scanning dependencies of target oscpack
[ 22%] Building CXX object external_libraries/CMakeFiles/oscpack.dir/oscpack_build.cpp.o
/Users/rainer/Projects/supercollider/source/external_libraries/oscpack_build.cpp:1:10: fatal error:
'boost/detail/endian.hpp' file not found
#include <boost/detail/endian.hpp>
^
1 error generated.
make[2]: *** [external_libraries/CMakeFiles/oscpack.dir/oscpack_build.cpp.o] Error 1
make[1]: *** [external_libraries/CMakeFiles/oscpack.dir/all] Error 2
make: *** [all] Error 2

@bagong
Copy link
Contributor

bagong commented Aug 9, 2014

Thanks! Getting close :)
Copying OS X content editors/sc-ide/SuperCollider.app/Contents/Resources/translations/scide_zh.qm
[ 97%] Built target SuperCollider
Scanning dependencies of target boost_test
[ 97%] Building CXX object testsuite/supernova/CMakeFiles/boost_test.dir/boost_test.cpp.o
/Users/rainer/Projects/supercollider/source/testsuite/supernova/boost_test.cpp:2:10: fatal error:
'boost/test/included/unit_test.hpp' file not found
#include <boost/test/included/unit_test.hpp>
^
1 error generated.
make[2]: *** [testsuite/supernova/CMakeFiles/boost_test.dir/boost_test.cpp.o] Error 1
make[1]: *** [testsuite/supernova/CMakeFiles/boost_test.dir/all] Error 2
make: *** [all] Error 2

@bagong
Copy link
Contributor

bagong commented Aug 9, 2014

Okay, builds now, and seems to work. Thanks!

Two issues:

  1. The files Authors ... README.md are now inside the bundle (SuperCollider.app/Contents), which makes them difficult to find. And the examples folder is in the Resources subfolder. I guess that's controversial, although I like that no SuperCollider subfolder is required any more.
  2. a separate bin folder is created with only sclang inside (there is also sclang within the bundle). Looks like an accident.

And a final question: there used to be the option to build with non-bundled libsndfile. Is that still the case?

@muellmusik
Copy link
Contributor

Probably not so good if examples/ is inside the bundle. The bundle is essentially private and not directly accessed by users, and examples needs to be user discoverable and accessible. Some info on what should go into app bundles here: https://developer.apple.com/library/mac/documentation/corefoundation/conceptual/cfbundles/BundleTypes/BundleTypes.html

Signed-off-by: Tim Blechmann <tim@klingt.org>
@bagong
Copy link
Contributor

bagong commented Aug 11, 2014

Works for me now, thanks!

@muellmusik
Copy link
Contributor

Yes, looks perfect AFAICS. I'm happy to merge this if nobody has any concerns. Thanks Tim.

@bagong
Copy link
Contributor

bagong commented Aug 12, 2014

Aliases from classes and help folders into userAppSupportDir/Extensions do not work anymore. This is likely to upset some maccers, especially as helpfiles in class-folders integrated via LanguageConfig are not recognized by SCDoc (symbolic links work)

@timblechmann
Copy link
Contributor Author

@bagong my changes did not affect the handling of filesystem aliases. any of those upset people are more than welcome to look into the code and provide a fix.

@bagong
Copy link
Contributor

bagong commented Aug 12, 2014

Ah, ok. I just bumped into this again and thought it might be related. Sorry for the noise...

muellmusik added a commit that referenced this pull request Aug 21, 2014
@muellmusik muellmusik merged commit 09b5a40 into supercollider:master Aug 21, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants