-
Notifications
You must be signed in to change notification settings - Fork 757
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
Add NO_X11 build option for headless plugins compilation #3738
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks okay to me, but have you tested with a supernova build?
I have now! Builds and runs successfully both with and without supernova. |
Great. I'll approve my review then but leave it for the moment in case anyone else wants to check. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks great, thanks. the UIUGen class files will still be installed in sclang and people will get "UGen not installed" errors if they try to use the classes, but it's part of a broader problem with sclang that selective class import is really annoying to do.
think the best solution here would be to add some info to the class file docs for each UGen in the UIUGens plugin. "If you get 'UGen MouseX not installed errors,' the server was probably compiled with UIUGens disabled. This is done on headless systems where there is no X server."
once this is merged i'll open a ticket to make these documentation changes.
Couldn't we rather not copy those files while building, in the same way GUI files are not copied? |
i would prefer
hmmmm i'm not wild about reorganizing the directory structure in the help files and the class library just to separate out these dudes, but i guess that's what we gotta do in this wonky language. so now we have to account for the possible absence of a UIUGen on any given SC installation. fortunately, there's only one use in the class lib: |
That's a good point.
You could also build a regex by listing the names of the files you explicitly want to ignore, but grouping them by functionality would also be OK. Either solution is fine with me. |
@orbsmiv do you mind rebasing this and fixing the merge conflict? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
marking this as 'needs changes' until concerns have been addressed
ff831f5
to
136b142
Compare
Rebase done. |
Okay, flag name and description updated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks!
I am trying to compile headless supercollider on a Raspberry PI 3b+ on the latest raspbian but the cmake call fails because X11 is not present even though I disabled it with $ git clone --recursive https://github.com/supercollider/supercollider && mkdir supercollider/build && cd supercollider/build
$ cmake -DSC_IDE=OFF -DSC_QT=OFF -NO_X11=ON ..
# ...
CMake Error at /usr/share/cmake-3.7/Modules/FindX11.cmake:429 (message):
Could not find X11
# ... |
@klingtnet You are missing the |
Thanks! |
When compiling for a headless system I'm passing the flags
-DSC_IDE=OFF -DSC_QT=OFF
but the compiler automatically builds the UIUgens plugin, which requires libx11. I've therefore defined a further flagNO_UIUGENS
(taking the form similar toNO_AVAHI
) which skips all of the UIUgens-related code.Perhaps a further option might be to define a higher-level
NO_UI
flag that wraps all of the UI-related flags into one?