-
Notifications
You must be signed in to change notification settings - Fork 0
Home
- Make building and installing projects more consistent. This should be a collection of common patterns and recipes that can be used which represent the current state of art in creating project files.
- Enable alternate installation locations. Anyone who is implementing some sort of software version management where users can somehow select and run different versions will need to have different versions of these projects configured and compiled to different locations. All the dependency resolution should provide appropriate overrides to be able to set alternate locations without having to hack the build configuration files.
- Enable compiling without an internet connection. Even if projects have options to auto-download, override variables should be provided to point the build tree at a separate, pre-downloaded location for the package.
If you are lucky enough to be on a system with GNU make, you can run:
make install prefix=/path/to/install
If not, the makefile is not required, it is just a convenience wrapper. Instead you will want to do something like (obviously, the install prefix and appropriate generator should be selected)
mkdir release
cd release
cmake -DCMAKE_INSTALL_PREFIX=/path/to/install -DCMAKE_BUILD_TYPE=Release -G "Ninja" ..
Then, based on your generated build files, run the build and install. There is no real code to build, but there is a check target (make check
) which adds some sanity checks against your version of cmake and system.
See EnableASWF.cmake in one of the sample projects for a sample cmake file you can include in your project and then in the top level CMakeLists.txt to see how it is included. This should find and include the top level config file.
One of the core principles here is to not require an internet connection, so even if EnableASWF.cmake has an option to clone this repo, it provides variables that enable a facility to pre-download
All the enclosed functions are included for use by including the top level file ASWF.cmake
[aswf_enable_doxygen]
[aswf_add_install_library]
[aswf_add_install_plugin]
[aswf_add_install_executable]
[aswf_enable_vfx_platform]
[aswf_add_vfx_install_library]
[aswf_setup_project_config_install]
[aswf_enable_package]
[aswf_set_api_version]
[aswf_set_so_version]
[aswf_get_target_property_with_default]
[aswf_create_libtool_file]
[map_get]
[map_set]