Closed jenhicks closed 7 years ago
Sure @chrisdembia The GUI repository has a branch that uses the opensim-core as a submodule and it seems to do what I wanted but I haven't tried to update it yet. Will let you know when I'm back n this trail. Thanks.
Thank you. I like the use of submodules. Will the GUI repo be a "CMake project"?
@aymanhab Will start working on this soon, asking for help from @klshrinidhi @chrisdembia @jimmyDunne
I suppose the options are superbuild (CMake ExternalProject_Add) and submodules. It is not clear to me which is better. So I suppose we should just choose one and be willing to change in the future. My hunch is that ExternalProject is better for opensim-core, and submodule is better for opensim-models.
Another question: Should the GUI repo be the repo used for creating the distributable, or should there be yet another repo used for that (which pulls in core, gui, and models)? My hunch is no, but just wanted to raise the idea.
Another option similar to superbuild would be cget: https://github.com/pfultz2/cget
@sherm1 do you have any wisdom to share with us, based on your collaboration with Kitware? We are trying to figure out how to combine the opensim-core and opensim-models repos with opensim-gui for packaging the distribution.
do you have any wisdom to share with us, based on your collaboration with Kitware?
We haven't gotten anywhere close to packaging yet with Drake. It's still build-from-source. For that Kitware made us switch to git submodules for our externals (we have a lot of them). Very nice conceptually but some sketchy behavior. Submodule glitches have ruined some of my local branches. Mostly works though, at least with Kitware working on it.
Okay thank you for sharing.
Who is working on this one?
@klshrinidhi is working on this per @chrisdembia
This issue will be addressed when @klshrinidhi edits the CMake files to organize dependencies for distribution.
The layout we proposed was intended to keep the layout for each dependency matching the native distribution of that dependency. This allows for reusing/distributing the CMake files from our own environment as is to build user projects. On windows, the layout would contain :
On osx -/Applications/OpenSim 4.0/OpenSim 4.0.app/Contents/.... -/Applications/OpenSim 4.0/bin/.. has symbolic links inside Contents -/Applications/OpenSim 4.0/sdk/.. has symbolic links inside Contents -/Applications/OpenSim 4.0/CMake/...
Thanks @chrisdembia for the refresher and please let me know if I got something wrong or the extra issues to be accounted for.
Okay. Got it. I will get back soon.
Thank you @aymanhab and @klshrinidhi. Some other things to consider:
For macOS/Linux, It is important that we retain a CMake variable like the current OPENSIM_INSTALL_UNIX_FHS
setting. When packaging opensim-core for homebrew or debian, we would not want an sdk
folder, etc.
On macOS, the symlinks would be set up by the GUI installer, not by opensim-core's CMake scripts. I expect that within the Contents folder is the same layout as on Windows (except for simbody-visualizer, as mentioned above).
Can you remind me what was the layout for Linux ? Also, I don't have access to OSX/Windows locally to develop/test the build.
We didn't discuss a layout for Linux. It seems like we are using the same layout for macOS and Windows except for simbody-visualizer
, so perhaps we should use the same layout on Linux as well.
You can get 90-day VirtualBox VMs of Windows (https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/).
I can test on macOS.
You could also use AppVeyor to test on Windows, though that workflow might not be very pleasant.
@klshrinidhi the layout for the application install on OSX mirrors the NetBeans install (since the GUI uses the same code base). If you install NetBeans on linux you should get a good idea about what the layout should look like.
PR #1664 addresses this issue, and @aymanhab and I just chatted about current progress. Some decisions we made:
Please keep me in the loop on this.