Finally got a chance to reply, been busy all day.
BTW, does the CI system stop compilation as soon as it encounters an error? I don't understand why it didn't try to compile the other wxL source files.
Also I noticed that the GitHub online version of ReadMe.md leaves out anything I put in angle brackets
so I'll need to fix that. Maybe I can wrap variables in the ReadMe in curly braces instead? Will need to check if that's compatible with GitHub's markdown, for example, that /Users/{YourUsername}/Library/Frameworks/ will appear with the curly braces intact. Originally I used angle brackets but apparently those don't work.
CMake Warning:
Manually-specified variables were not used by the project:
USING_SDL_FRAMEWORK
If CMake couldn't find SDL2, there would be a fatal error message "SDL2 not found". The USING_SDL_FRAMEWORK (I thought I changed it to say SDL2?) was to allow Homebrew users to use their own version of SDL2 instead of FSO's SDL2.framework. As mentioned I think we should stop officially supporting Homebrew for building wxL. I can revise a ReadMe.md to say that at the same time that I resolve the issue with the angle brackets (see above).
For some reason the rest of the message is printed later
▸ Compiling FileProfileManager.cpp
❌ /Users/travis/build/scp-fs2open/wxLauncher/code/apis/FileProfileManager.cpp:33:10: 'SDL_filesystem.h' file not found
#include <SDL_filesystem.h>
^
As mentioned CMake found SDL2. The problem is that CMakeLists.txt assumes you're using SDL2.framework and hardcodes the SDL2 include path to be to the detected SDL2 library's Headers subfolder, since for any framework the Headers subfolder is the include path.
Also, just my opinion, but I don't think we should officially support OS X build setups that don't follow the instructions in the OS X section of the wxL ReadMe, which rules out things like Homebrew. By follow the instructions I mean using Python 3, latest stable wxWidgets 3.x, SDL2.framework from FSO source tree, building wxWidgets manually using specific configure flags, and calling CMake with the specified flags. It should be possible to configure the CI server such it follows the instructions in the ReadMe. It's hard enough getting wxWidgets/wxL/SDL2 to work together on a known setup like using wxWidgets built with very specific parameters (see the wxL ReadMe's revised OS X section) and the SDL2.framework from the FSO source tree. However, I guess supporting multiple versions of wxWidgets and Python is reasonable, although I couldn't get the build system to work with Python 2, so I gave up and used 3 instead.
That is fair. The primary reason that we support multiple python and wxWidgets versions if for the Linux people that are expected to build from source.
Glad you agree.
If you want to take a stab at fixing it by making it follow the readme then make a pull request, it will build them automatically. Don't worry about appveyor, I have another pull request in process to get that to work.
I'm not sure what that pull request would look like. Can you explain how to do it? Following the wxl ReadMe instructions for OS X shouldn't require more than general basic Unix command line skills. The only tricky part is that to copy a framework using cp you need to use the -R option to copy the entire framework folder.
Seems it is a brew problem. It is supposedly fixed, but I changed the OS X image that we are using to match what you wrote the readme against and now it is gone. Replaced by a bunch more warning and still the failure with FileProfileManager.cpp
Could you quote the section with the extra warnings? It's easier than me trying to find it when I'm not familiar with how the log normally looks.
▸ Compiling FileProfileManager.cpp
❌ /Users/travis/build/scp-fs2open/wxLauncher/code/apis/FileProfileManager.cpp:33:10: 'SDL_filesystem.h' file not found
#include <SDL_filesystem.h>
^
Seems that this include is for SDL_GetPrefPath which is new in SDL 2.0.1 !?
Not sure the version number is significant if the issue is that the compiler just can't find the include folder. As mentioned above CMakeLists.txt now hardcodes the include path to be ${SDL2_FRAMEWORK}/Headers.
Ideally if we're going to require using SDL2.framework to build wxL on OS X, CMakeLists.txt should check if SDL2_FRAMEWORK (what find_library() finds) actually is a framework and print a fatal error if it is not. Not sure how to do that with CMake or if it's even possible. Basically just means checking that the library found ends in ".framework".