| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- Build cglm
- ================================
- | **cglm** does not have any external dependencies.
- **NOTE:**
- If you only need to inline versions, you don't need to build **cglm**, you don't need to link it to your program.
- Just import cglm to your project as dependency / external lib by copy-paste then use it as usual
- CMake (All platforms):
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- .. code-block:: bash
- :linenos:
- $ mkdir build
- $ cd build
- $ cmake .. # [Optional] -DCGLM_SHARED=ON
- $ make
- $ sudo make install # [Optional]
- **make** will build cglm to **build** folder.
- If you don't want to install **cglm** to your system's folder you can get static and dynamic libs in this folder.
- **CMake Options:**
- .. code-block:: CMake
- :linenos:
- option(CGLM_SHARED "Shared build" ON)
- option(CGLM_STATIC "Static build" OFF)
- option(CGLM_USE_C99 "" OFF) # C11
- option(CGLM_USE_TEST "Enable Tests" OFF) # for make check - make test
- **Use with your CMake project example**
- .. code-block:: CMake
- :linenos:
- cmake_minimum_required(VERSION 3.8.2)
-
- project(<Your Project Name>)
-
- add_executable(${PROJECT_NAME} src/main.c)
- target_link_libraries(${LIBRARY_NAME} PRIVATE
- cglm)
-
- add_subdirectory(external/cglm/)
- Meson (All platforms):
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- .. code-block:: bash
- :linenos:
- $ meson build # [Optional] --default-library=static
- $ cd build
- $ ninja
- $ sudo ninja install # [Optional]
- **Meson Options:**
- .. code-block:: CMake
- :linenos:
- c_std=c11
- buildtype=release
- default_library=shared
- enable_tests=false # to run tests: ninja test
- **Use with your CMake project example**
- .. code-block:: CMake
- :linenos:
- # Clone cglm or create a cglm.wrap under <source_root>/subprojects
- project('name', 'c')
-
- cglm_dep = dependency('cglm', fallback : 'cglm', 'cglm_dep')
-
- executable('exe', 'src/main.c', dependencies : cglm_dep)
- Unix (Autotools):
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- .. code-block:: bash
- :linenos:
- $ sh autogen.sh
- $ ./configure
- $ make
- $ make check # run tests (optional)
- $ [sudo] make install # install to system (optional)
- **make** will build cglm to **.libs** sub folder in project folder.
- If you don't want to install **cglm** to your system's folder you can get static and dynamic libs in this folder.
- Windows (MSBuild):
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Windows related build files, project files are located in `win` folder,
- make sure you are inside in cglm/win folder.
- Code Analysis are enabled, it may take awhile to build.
- .. code-block:: bash
- :linenos:
- $ cd win
- $ .\build.bat
- if *msbuild* is not worked (because of multi versions of Visual Studio)
- then try to build with *devenv*:
- .. code-block:: bash
- :linenos:
- $ devenv cglm.sln /Build Release
- Currently tests are not available on Windows.
- Documentation (Sphinx):
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- **cglm** uses sphinx framework for documentation, it allows lot of formats for documentation. To see all options see sphinx build page:
- https://www.sphinx-doc.org/en/master/man/sphinx-build.html
- Example build:
- .. code-block:: bash
- :linenos:
- $ cd cglm/docs
- $ sphinx-build source build
|