mirror of
https://github.com/Perlmint/glew-cmake.git
synced 2024-11-29 01:51:57 +00:00
Merge pull request #52 from Perlmint/feature/readme
Add readme of GLEW-cmake
This commit is contained in:
commit
7c2b7514f6
21
.github/workflows/cmake.yml
vendored
21
.github/workflows/cmake.yml
vendored
@ -23,41 +23,42 @@ jobs:
|
|||||||
# cross-platform coverage.
|
# cross-platform coverage.
|
||||||
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
|
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
container: ubuntu:latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: sudo apt install libglu1-mesa-dev pkg-config
|
run: apt update && DEBIAN_FRONTEND=noninteractive apt install -y cmake gcc g++ libglu1-mesa-dev pkg-config libx11-dev libxext-dev
|
||||||
|
|
||||||
- name: Create Build Environment
|
- name: Create Build Environment
|
||||||
# Some projects don't allow in-source building, so create a separate build directory
|
# Some projects don't allow in-source building, so create a separate build directory
|
||||||
# We'll use this as our working directory for all subsequent commands
|
# We'll use this as our working directory for all subsequent commands
|
||||||
run: |
|
run: |
|
||||||
mkdir ${{runner.workspace}}/build_test
|
mkdir build_test
|
||||||
mkdir ${{runner.workspace}}/from_installed
|
mkdir from_installed
|
||||||
mkdir ${{runner.workspace}}/pkg-config
|
mkdir pkg-config
|
||||||
mkdir ${{runner.workspace}}/as_subdirectory
|
mkdir as_subdirectory
|
||||||
|
|
||||||
- name: Configure CMake
|
- name: Configure CMake
|
||||||
# Use a bash shell so we can use the same syntax for environment variable
|
# Use a bash shell so we can use the same syntax for environment variable
|
||||||
# access regardless of the host operating system
|
# access regardless of the host operating system
|
||||||
shell: bash
|
shell: bash
|
||||||
working-directory: ${{runner.workspace}}/build_test
|
working-directory: build_test
|
||||||
# Note the current convention is to use the -S and -B options here to specify source
|
# Note the current convention is to use the -S and -B options here to specify source
|
||||||
# and build directories, but this is only available with CMake 3.13 and higher.
|
# and build directories, but this is only available with CMake 3.13 and higher.
|
||||||
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12
|
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12
|
||||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE
|
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE
|
||||||
|
|
||||||
- name: Build test
|
- name: Build test
|
||||||
working-directory: ${{runner.workspace}}/build_test
|
working-directory: build_test
|
||||||
shell: bash
|
shell: bash
|
||||||
# Execute the build. You can specify a specific target with "--target <NAME>"
|
# Execute the build. You can specify a specific target with "--target <NAME>"
|
||||||
run: cmake --build . --config $BUILD_TYPE
|
run: cmake --build . --config $BUILD_TYPE
|
||||||
|
|
||||||
- name: Install test
|
- name: Install test
|
||||||
shell: bash
|
shell: bash
|
||||||
working-directory: ${{runner.workspace}}/from_installed
|
working-directory: from_installed
|
||||||
run: |
|
run: |
|
||||||
mkdir -p ext_project/build
|
mkdir -p ext_project/build
|
||||||
cp $GITHUB_WORKSPACE/src/glewinfo.c ext_project/
|
cp $GITHUB_WORKSPACE/src/glewinfo.c ext_project/
|
||||||
@ -71,7 +72,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Package config test
|
- name: Package config test
|
||||||
shell: bash
|
shell: bash
|
||||||
working-directory: ${{runner.workspace}}/pkg-config
|
working-directory: pkg-config
|
||||||
run: |
|
run: |
|
||||||
mkdir -p ext_project
|
mkdir -p ext_project
|
||||||
cp $GITHUB_WORKSPACE/src/glewinfo.c ext_project/
|
cp $GITHUB_WORKSPACE/src/glewinfo.c ext_project/
|
||||||
@ -83,7 +84,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Subdirectory test
|
- name: Subdirectory test
|
||||||
shell: bash
|
shell: bash
|
||||||
working-directory: ${{runner.workspace}}/as_subdirectory
|
working-directory: as_subdirectory
|
||||||
run: |
|
run: |
|
||||||
cp $GITHUB_WORKSPACE/src/glewinfo.c ./
|
cp $GITHUB_WORKSPACE/src/glewinfo.c ./
|
||||||
cp $GITHUB_WORKSPACE/glew-cmake/sub-directory-test.cmake CMakeLists.txt
|
cp $GITHUB_WORKSPACE/glew-cmake/sub-directory-test.cmake CMakeLists.txt
|
||||||
|
263
README.md
263
README.md
@ -1,256 +1,29 @@
|
|||||||
# GLEW - The OpenGL Extension Wrangler Library
|
# GLEW-cmake - nightly pre-generated snapshot with old unofficial cmake support
|
||||||
|
|
||||||
The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file. GLEW has been tested on a variety of operating systems, including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris.
|
[GLEW](https://github.com/nigels-com/glew) is upstream of this project.
|
||||||
|
But *GLEW* repository does not contain generated sources. Only releases include generated sources.
|
||||||
|
|
||||||
![](http://glew.sourceforge.net/glew.png)
|
*GLEW-cmake* has generated sources based on the latest *GLEW*. Sources are generated nightly.
|
||||||
|
If you need only the latest snapshot of *GLEW*, try the build system of *GLEW*. It is placed under the `build` directory. Official `CMakeLists.txt` is placed in `build/cmake`.
|
||||||
|
Please check [README_glew.md](./README_glew.md) for using build system of *GLEW*.
|
||||||
|
|
||||||
http://glew.sourceforge.net/
|
Also, *GLEW-cmake* has unofficial cmake support - It is created when the official CMake support of *GLEW* does not exist.
|
||||||
|
You can see some CMake script examples in [`glew-cmake`](./glew-cmake/) directory. But, I **strongly** recommend using official CMakeLists of *GLEW*.
|
||||||
|
|
||||||
https://github.com/nigels-com/glew
|
## Usage
|
||||||
|
|
||||||
[![Build Status](https://travis-ci.org/nigels-com/glew.svg?branch=master)](https://travis-ci.org/nigels-com/glew)
|
This project provide `libglew_static` and `libglew_shared` library targets and `glewinfo` and `visualinfo` executable targets.
|
||||||
[![Gitter](https://badges.gitter.im/nigels-com/glew.svg)](https://gitter.im/nigels-com/glew?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
|
||||||
[![Download](https://img.shields.io/sourceforge/dm/glew.svg)](https://sourceforge.net/projects/glew/files/latest/download)
|
|
||||||
|
|
||||||
## Table of Contents
|
`libglew_static` provides a static library, and `libglew_shared` provides a shared library.
|
||||||
|
*glew-cmake* does not affected by [BUILD_SHARED_LIBS](https://cmake.org/cmake/help/latest/variable/BUILD_SHARED_LIBS.html).
|
||||||
|
|
||||||
* [Downloads](#downloads)
|
You can disable each library target by setting `glew-cmake_BUILD_SHARED` or `glew-cmake_BUILD_STATIC` falsy value (ex. `NO`, `FALSE`).
|
||||||
* [Recent snapshots](#recent-snapshots)
|
|
||||||
* [Build](#build)
|
|
||||||
* [Linux and Mac](#linux-and-mac)
|
|
||||||
* [Using GNU Make](#using-gnu-make)
|
|
||||||
* [Install build tools](#install-build-tools)
|
|
||||||
* [Build](#build-1)
|
|
||||||
* [Linux EGL](#linux-egl)
|
|
||||||
* [Linux OSMesa](#linux-osmesa)
|
|
||||||
* [Linux mingw-w64](#linux-mingw-w64)
|
|
||||||
* [Using cmake](#using-cmake)
|
|
||||||
* [Install build tools](#install-build-tools-1)
|
|
||||||
* [Build](#build-2)
|
|
||||||
* [Windows](#windows)
|
|
||||||
* [Visual Studio](#visual-studio)
|
|
||||||
* [MSYS/Mingw](#msysmingw)
|
|
||||||
* [MSYS2/Mingw-w64](#msys2mingw-w64)
|
|
||||||
* [glewinfo](#glewinfo)
|
|
||||||
* [Code Generation](#code-generation)
|
|
||||||
* [Authors](#authors)
|
|
||||||
* [Contributions](#contributions)
|
|
||||||
* [Copyright and Licensing](#copyright-and-licensing)
|
|
||||||
|
|
||||||
## Downloads
|
If you need only libraries, Please set `ONLY_LIBS` to `ON`. Otherwise, cmake generates executable targets also.
|
||||||
|
|
||||||
Current release is [2.2.0](https://github.com/nigels-com/glew/releases/tag/glew-2.2.0).
|
You can get pkg-config fils by setting `PKG_CONFIG_REPRESENTATIVE_TARGET` to `libglew_static` or `libglew_shared`.
|
||||||
[(Change Log)](http://glew.sourceforge.net/log.html)
|
|
||||||
|
|
||||||
Sources available as
|
Simply specify dependency of your target with `libglew_static` or `libglew_shared` by `target_link_libraries`.
|
||||||
[ZIP](https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0.zip) or
|
It will set the additional include directory & the libraries to link to your target.
|
||||||
[TGZ](https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0.tgz).
|
|
||||||
|
|
||||||
Windows binaries for [32-bit and 64-bit](https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0-win32.zip).
|
If you are not familiar with cmake, Some `sub-directory-test.cmake`, `fetch-content.cmake` in [`glew-cmake`](./glew-cmake/) could be helpful.
|
||||||
|
|
||||||
### Recent snapshots
|
|
||||||
|
|
||||||
Snapshots may contain new features, bug-fixes or new OpenGL extensions ahead of tested, official releases.
|
|
||||||
|
|
||||||
<!--- [glew-20190928.tgz](https://sourceforge.net/projects/glew/files/glew/snapshots/glew-20190928.tgz/download) *GLEW 2.2.0 RC2: New extensions, bug fixes* -->
|
|
||||||
|
|
||||||
## Build
|
|
||||||
|
|
||||||
It is highly recommended to build from a tgz or zip release snapshot.
|
|
||||||
The code generation workflow is a complex brew of gnu make, perl and python, that works best on Linux or Mac.
|
|
||||||
The code generation is known to work on Windows using [MSYS2](https://www.msys2.org/).
|
|
||||||
For most end-users of GLEW the official releases are the best choice, with first class support.
|
|
||||||
|
|
||||||
### Linux and Mac
|
|
||||||
|
|
||||||
#### Using GNU Make
|
|
||||||
|
|
||||||
GNU make is the primary build system for GLEW, historically.
|
|
||||||
It includes targets for building the sources and headers, for maintenance purposes.
|
|
||||||
|
|
||||||
##### Install build tools
|
|
||||||
|
|
||||||
Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev`
|
|
||||||
|
|
||||||
RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel`
|
|
||||||
|
|
||||||
FreeBSD: `# pkg install xorg lang/gcc git cmake gmake bash python perl5`
|
|
||||||
|
|
||||||
##### Build
|
|
||||||
|
|
||||||
$ make
|
|
||||||
$ sudo make install
|
|
||||||
$ make clean
|
|
||||||
|
|
||||||
Targets: `all, glew.lib (sub-targets: glew.lib.shared, glew.lib.static), glew.bin, clean, install, uninstall`
|
|
||||||
|
|
||||||
Variables: `SYSTEM=linux-clang, GLEW_DEST=/usr/local, STRIP=`
|
|
||||||
|
|
||||||
_Note: you may need to call `make` in the **auto** folder first_
|
|
||||||
|
|
||||||
##### Linux EGL
|
|
||||||
|
|
||||||
$ sudo apt install libegl1-mesa-dev
|
|
||||||
$ make SYSTEM=linux-egl
|
|
||||||
|
|
||||||
##### Linux OSMesa
|
|
||||||
|
|
||||||
$ sudo apt install libosmesa-dev
|
|
||||||
$ make SYSTEM=linux-osmesa
|
|
||||||
|
|
||||||
##### Linux mingw-w64
|
|
||||||
|
|
||||||
$ sudo apt install mingw-w64
|
|
||||||
$ make SYSTEM=linux-mingw32
|
|
||||||
$ make SYSTEM=linux-mingw64
|
|
||||||
|
|
||||||
#### Using cmake
|
|
||||||
|
|
||||||
The cmake build is mostly contributer maintained.
|
|
||||||
Due to the multitude of use cases this is maintained on a _best effort_ basis.
|
|
||||||
Pull requests are welcome.
|
|
||||||
|
|
||||||
*CMake 2.8.12 or higher is required.*
|
|
||||||
|
|
||||||
##### Install build tools
|
|
||||||
|
|
||||||
Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev cmake git`
|
|
||||||
|
|
||||||
RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel cmake git`
|
|
||||||
|
|
||||||
##### Build
|
|
||||||
|
|
||||||
$ cd build
|
|
||||||
$ cmake ./cmake
|
|
||||||
$ make -j4
|
|
||||||
|
|
||||||
| Target | Description |
|
|
||||||
| ---------- | ----------- |
|
|
||||||
| glew | Build the glew shared library. |
|
|
||||||
| glew_s | Build the glew static library. |
|
|
||||||
| glewinfo | Build the `glewinfo` executable (requires `BUILD_UTILS` to be `ON`). |
|
|
||||||
| visualinfo | Build the `visualinfo` executable (requires `BUILD_UTILS` to be `ON`). |
|
|
||||||
| install | Install all enabled targets into `CMAKE_INSTALL_PREFIX`. |
|
|
||||||
| clean | Clean up build artifacts. |
|
|
||||||
| all | Build all enabled targets (default target). |
|
|
||||||
|
|
||||||
| Variables | Description |
|
|
||||||
| --------------- | ----------- |
|
|
||||||
| BUILD_UTILS | Build the `glewinfo` and `visualinfo` executables. |
|
|
||||||
| GLEW_REGAL | Build in Regal mode. |
|
|
||||||
| GLEW_OSMESA | Build in off-screen Mesa mode. |
|
|
||||||
| BUILD_FRAMEWORK | Build as MacOSX Framework. Setting `CMAKE_INSTALL_PREFIX` to `/Library/Frameworks` is recommended. |
|
|
||||||
|
|
||||||
### Windows
|
|
||||||
|
|
||||||
#### Visual Studio
|
|
||||||
|
|
||||||
Use the provided Visual Studio project file in build/vc15/
|
|
||||||
|
|
||||||
Projects for vc6, vc10, vc12 and vc14 are also provided
|
|
||||||
|
|
||||||
#### MSYS/Mingw
|
|
||||||
|
|
||||||
Available from [Mingw](http://www.mingw.org/)
|
|
||||||
|
|
||||||
Requirements: bash, make, gcc
|
|
||||||
|
|
||||||
$ mingw32-make
|
|
||||||
$ mingw32-make install
|
|
||||||
$ mingw32-make install.all
|
|
||||||
|
|
||||||
Alternative toolchain: `SYSTEM=mingw-win32`
|
|
||||||
|
|
||||||
#### MSYS2/Mingw-w64
|
|
||||||
|
|
||||||
Available from [Msys2](http://msys2.github.io/) and/or [Mingw-w64](http://mingw-w64.org/)
|
|
||||||
|
|
||||||
Requirements: bash, make, gcc
|
|
||||||
|
|
||||||
$ pacman -S gcc make mingw-w64-i686-gcc mingw-w64-x86_64-gcc
|
|
||||||
$ make
|
|
||||||
$ make install
|
|
||||||
$ make install.all
|
|
||||||
|
|
||||||
Alternative toolchain: `SYSTEM=msys, SYSTEM=msys-win32, SYSTEM=msys-win64`
|
|
||||||
|
|
||||||
## glewinfo
|
|
||||||
|
|
||||||
`glewinfo` is a command-line tool useful for inspecting the capabilities of an
|
|
||||||
OpenGL implementation and GLEW support for that. Please include `glewinfo.txt`
|
|
||||||
with bug reports, as appropriate.
|
|
||||||
|
|
||||||
---------------------------
|
|
||||||
GLEW Extension Info
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
GLEW version 2.0.0
|
|
||||||
Reporting capabilities of pixelformat 3
|
|
||||||
Running on a Intel(R) HD Graphics 3000 from Intel
|
|
||||||
OpenGL version 3.1.0 - Build 9.17.10.4229 is supported
|
|
||||||
|
|
||||||
GL_VERSION_1_1: OK
|
|
||||||
---------------
|
|
||||||
|
|
||||||
GL_VERSION_1_2: OK
|
|
||||||
---------------
|
|
||||||
glCopyTexSubImage3D: OK
|
|
||||||
glDrawRangeElements: OK
|
|
||||||
glTexImage3D: OK
|
|
||||||
glTexSubImage3D: OK
|
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
## Code Generation
|
|
||||||
|
|
||||||
A Unix or Mac environment is needed for building GLEW from scratch to
|
|
||||||
include new extensions, or customize the code generation. The extension
|
|
||||||
data is regenerated from the top level source directory with:
|
|
||||||
|
|
||||||
make extensions
|
|
||||||
|
|
||||||
An alternative to generating the GLEW sources from scratch is to
|
|
||||||
download a pre-generated (unsupported) snapshot:
|
|
||||||
|
|
||||||
https://sourceforge.net/projects/glew/files/glew/snapshots/
|
|
||||||
|
|
||||||
## Authors
|
|
||||||
|
|
||||||
GLEW is currently maintained by [Nigel Stewart](https://github.com/nigels-com)
|
|
||||||
with bug fixes, new OpenGL extension support and new releases.
|
|
||||||
|
|
||||||
GLEW was developed by [Milan Ikits](http://www.cs.utah.edu/~ikits/)
|
|
||||||
and [Marcelo Magallon](http://wwwvis.informatik.uni-stuttgart.de/~magallon/).
|
|
||||||
Aaron Lefohn, Joe Kniss, and Chris Wyman were the first users and also
|
|
||||||
assisted with the design and debugging process.
|
|
||||||
|
|
||||||
The acronym GLEW originates from Aaron Lefohn.
|
|
||||||
Pasi Kärkkäinen identified and fixed several problems with
|
|
||||||
GLX and SDL. Nate Robins created the `wglinfo` utility, to
|
|
||||||
which modifications were made by Michael Wimmer.
|
|
||||||
|
|
||||||
## Contributions
|
|
||||||
|
|
||||||
GLEW welcomes community contributions. Typically these are co-ordinated
|
|
||||||
via [Issues](https://github.com/nigels-com/glew/issues) or
|
|
||||||
[Pull Requests](https://github.com/nigels-com/glew/pulls) in the
|
|
||||||
GitHub web interface.
|
|
||||||
|
|
||||||
Be sure to mention platform and compiler toolchain details when filing
|
|
||||||
a bug report. The output of `glewinfo` can be quite useful for discussion
|
|
||||||
also.
|
|
||||||
|
|
||||||
Generally GLEW is usually released once a year, around the time of the Siggraph
|
|
||||||
computer graphics conference. If you're not using the current release
|
|
||||||
version of GLEW, be sure to check if the issue or bug is fixed there.
|
|
||||||
|
|
||||||
## Copyright and Licensing
|
|
||||||
|
|
||||||
GLEW is originally derived from the EXTGL project by Lev Povalahev.
|
|
||||||
The source code is licensed under the
|
|
||||||
[Modified BSD License](http://glew.sourceforge.net/glew.txt), the
|
|
||||||
[Mesa 3-D License](http://glew.sourceforge.net/mesa.txt) (MIT) and the
|
|
||||||
[Khronos License](http://glew.sourceforge.net/khronos.txt) (MIT).
|
|
||||||
|
|
||||||
The automatic code generation scripts are released under the
|
|
||||||
[GNU GPL](http://glew.sourceforge.net/gpl.txt).
|
|
||||||
|
256
README_glew.md
Normal file
256
README_glew.md
Normal file
@ -0,0 +1,256 @@
|
|||||||
|
# GLEW - The OpenGL Extension Wrangler Library
|
||||||
|
|
||||||
|
The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file. GLEW has been tested on a variety of operating systems, including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris.
|
||||||
|
|
||||||
|
![](http://glew.sourceforge.net/glew.png)
|
||||||
|
|
||||||
|
http://glew.sourceforge.net/
|
||||||
|
|
||||||
|
https://github.com/nigels-com/glew
|
||||||
|
|
||||||
|
[![Build Status](https://travis-ci.org/nigels-com/glew.svg?branch=master)](https://travis-ci.org/nigels-com/glew)
|
||||||
|
[![Gitter](https://badges.gitter.im/nigels-com/glew.svg)](https://gitter.im/nigels-com/glew?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
||||||
|
[![Download](https://img.shields.io/sourceforge/dm/glew.svg)](https://sourceforge.net/projects/glew/files/latest/download)
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
* [Downloads](#downloads)
|
||||||
|
* [Recent snapshots](#recent-snapshots)
|
||||||
|
* [Build](#build)
|
||||||
|
* [Linux and Mac](#linux-and-mac)
|
||||||
|
* [Using GNU Make](#using-gnu-make)
|
||||||
|
* [Install build tools](#install-build-tools)
|
||||||
|
* [Build](#build-1)
|
||||||
|
* [Linux EGL](#linux-egl)
|
||||||
|
* [Linux OSMesa](#linux-osmesa)
|
||||||
|
* [Linux mingw-w64](#linux-mingw-w64)
|
||||||
|
* [Using cmake](#using-cmake)
|
||||||
|
* [Install build tools](#install-build-tools-1)
|
||||||
|
* [Build](#build-2)
|
||||||
|
* [Windows](#windows)
|
||||||
|
* [Visual Studio](#visual-studio)
|
||||||
|
* [MSYS/Mingw](#msysmingw)
|
||||||
|
* [MSYS2/Mingw-w64](#msys2mingw-w64)
|
||||||
|
* [glewinfo](#glewinfo)
|
||||||
|
* [Code Generation](#code-generation)
|
||||||
|
* [Authors](#authors)
|
||||||
|
* [Contributions](#contributions)
|
||||||
|
* [Copyright and Licensing](#copyright-and-licensing)
|
||||||
|
|
||||||
|
## Downloads
|
||||||
|
|
||||||
|
Current release is [2.2.0](https://github.com/nigels-com/glew/releases/tag/glew-2.2.0).
|
||||||
|
[(Change Log)](http://glew.sourceforge.net/log.html)
|
||||||
|
|
||||||
|
Sources available as
|
||||||
|
[ZIP](https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0.zip) or
|
||||||
|
[TGZ](https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0.tgz).
|
||||||
|
|
||||||
|
Windows binaries for [32-bit and 64-bit](https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0-win32.zip).
|
||||||
|
|
||||||
|
### Recent snapshots
|
||||||
|
|
||||||
|
Snapshots may contain new features, bug-fixes or new OpenGL extensions ahead of tested, official releases.
|
||||||
|
|
||||||
|
<!--- [glew-20190928.tgz](https://sourceforge.net/projects/glew/files/glew/snapshots/glew-20190928.tgz/download) *GLEW 2.2.0 RC2: New extensions, bug fixes* -->
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
It is highly recommended to build from a tgz or zip release snapshot.
|
||||||
|
The code generation workflow is a complex brew of gnu make, perl and python, that works best on Linux or Mac.
|
||||||
|
The code generation is known to work on Windows using [MSYS2](https://www.msys2.org/).
|
||||||
|
For most end-users of GLEW the official releases are the best choice, with first class support.
|
||||||
|
|
||||||
|
### Linux and Mac
|
||||||
|
|
||||||
|
#### Using GNU Make
|
||||||
|
|
||||||
|
GNU make is the primary build system for GLEW, historically.
|
||||||
|
It includes targets for building the sources and headers, for maintenance purposes.
|
||||||
|
|
||||||
|
##### Install build tools
|
||||||
|
|
||||||
|
Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev`
|
||||||
|
|
||||||
|
RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel`
|
||||||
|
|
||||||
|
FreeBSD: `# pkg install xorg lang/gcc git cmake gmake bash python perl5`
|
||||||
|
|
||||||
|
##### Build
|
||||||
|
|
||||||
|
$ make
|
||||||
|
$ sudo make install
|
||||||
|
$ make clean
|
||||||
|
|
||||||
|
Targets: `all, glew.lib (sub-targets: glew.lib.shared, glew.lib.static), glew.bin, clean, install, uninstall`
|
||||||
|
|
||||||
|
Variables: `SYSTEM=linux-clang, GLEW_DEST=/usr/local, STRIP=`
|
||||||
|
|
||||||
|
_Note: you may need to call `make` in the **auto** folder first_
|
||||||
|
|
||||||
|
##### Linux EGL
|
||||||
|
|
||||||
|
$ sudo apt install libegl1-mesa-dev
|
||||||
|
$ make SYSTEM=linux-egl
|
||||||
|
|
||||||
|
##### Linux OSMesa
|
||||||
|
|
||||||
|
$ sudo apt install libosmesa-dev
|
||||||
|
$ make SYSTEM=linux-osmesa
|
||||||
|
|
||||||
|
##### Linux mingw-w64
|
||||||
|
|
||||||
|
$ sudo apt install mingw-w64
|
||||||
|
$ make SYSTEM=linux-mingw32
|
||||||
|
$ make SYSTEM=linux-mingw64
|
||||||
|
|
||||||
|
#### Using cmake
|
||||||
|
|
||||||
|
The cmake build is mostly contributer maintained.
|
||||||
|
Due to the multitude of use cases this is maintained on a _best effort_ basis.
|
||||||
|
Pull requests are welcome.
|
||||||
|
|
||||||
|
*CMake 2.8.12 or higher is required.*
|
||||||
|
|
||||||
|
##### Install build tools
|
||||||
|
|
||||||
|
Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev cmake git`
|
||||||
|
|
||||||
|
RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel cmake git`
|
||||||
|
|
||||||
|
##### Build
|
||||||
|
|
||||||
|
$ cd build
|
||||||
|
$ cmake ./cmake
|
||||||
|
$ make -j4
|
||||||
|
|
||||||
|
| Target | Description |
|
||||||
|
| ---------- | ----------- |
|
||||||
|
| glew | Build the glew shared library. |
|
||||||
|
| glew_s | Build the glew static library. |
|
||||||
|
| glewinfo | Build the `glewinfo` executable (requires `BUILD_UTILS` to be `ON`). |
|
||||||
|
| visualinfo | Build the `visualinfo` executable (requires `BUILD_UTILS` to be `ON`). |
|
||||||
|
| install | Install all enabled targets into `CMAKE_INSTALL_PREFIX`. |
|
||||||
|
| clean | Clean up build artifacts. |
|
||||||
|
| all | Build all enabled targets (default target). |
|
||||||
|
|
||||||
|
| Variables | Description |
|
||||||
|
| --------------- | ----------- |
|
||||||
|
| BUILD_UTILS | Build the `glewinfo` and `visualinfo` executables. |
|
||||||
|
| GLEW_REGAL | Build in Regal mode. |
|
||||||
|
| GLEW_OSMESA | Build in off-screen Mesa mode. |
|
||||||
|
| BUILD_FRAMEWORK | Build as MacOSX Framework. Setting `CMAKE_INSTALL_PREFIX` to `/Library/Frameworks` is recommended. |
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
|
||||||
|
#### Visual Studio
|
||||||
|
|
||||||
|
Use the provided Visual Studio project file in build/vc15/
|
||||||
|
|
||||||
|
Projects for vc6, vc10, vc12 and vc14 are also provided
|
||||||
|
|
||||||
|
#### MSYS/Mingw
|
||||||
|
|
||||||
|
Available from [Mingw](http://www.mingw.org/)
|
||||||
|
|
||||||
|
Requirements: bash, make, gcc
|
||||||
|
|
||||||
|
$ mingw32-make
|
||||||
|
$ mingw32-make install
|
||||||
|
$ mingw32-make install.all
|
||||||
|
|
||||||
|
Alternative toolchain: `SYSTEM=mingw-win32`
|
||||||
|
|
||||||
|
#### MSYS2/Mingw-w64
|
||||||
|
|
||||||
|
Available from [Msys2](http://msys2.github.io/) and/or [Mingw-w64](http://mingw-w64.org/)
|
||||||
|
|
||||||
|
Requirements: bash, make, gcc
|
||||||
|
|
||||||
|
$ pacman -S gcc make mingw-w64-i686-gcc mingw-w64-x86_64-gcc
|
||||||
|
$ make
|
||||||
|
$ make install
|
||||||
|
$ make install.all
|
||||||
|
|
||||||
|
Alternative toolchain: `SYSTEM=msys, SYSTEM=msys-win32, SYSTEM=msys-win64`
|
||||||
|
|
||||||
|
## glewinfo
|
||||||
|
|
||||||
|
`glewinfo` is a command-line tool useful for inspecting the capabilities of an
|
||||||
|
OpenGL implementation and GLEW support for that. Please include `glewinfo.txt`
|
||||||
|
with bug reports, as appropriate.
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
GLEW Extension Info
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
GLEW version 2.0.0
|
||||||
|
Reporting capabilities of pixelformat 3
|
||||||
|
Running on a Intel(R) HD Graphics 3000 from Intel
|
||||||
|
OpenGL version 3.1.0 - Build 9.17.10.4229 is supported
|
||||||
|
|
||||||
|
GL_VERSION_1_1: OK
|
||||||
|
---------------
|
||||||
|
|
||||||
|
GL_VERSION_1_2: OK
|
||||||
|
---------------
|
||||||
|
glCopyTexSubImage3D: OK
|
||||||
|
glDrawRangeElements: OK
|
||||||
|
glTexImage3D: OK
|
||||||
|
glTexSubImage3D: OK
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
## Code Generation
|
||||||
|
|
||||||
|
A Unix or Mac environment is needed for building GLEW from scratch to
|
||||||
|
include new extensions, or customize the code generation. The extension
|
||||||
|
data is regenerated from the top level source directory with:
|
||||||
|
|
||||||
|
make extensions
|
||||||
|
|
||||||
|
An alternative to generating the GLEW sources from scratch is to
|
||||||
|
download a pre-generated (unsupported) snapshot:
|
||||||
|
|
||||||
|
https://sourceforge.net/projects/glew/files/glew/snapshots/
|
||||||
|
|
||||||
|
## Authors
|
||||||
|
|
||||||
|
GLEW is currently maintained by [Nigel Stewart](https://github.com/nigels-com)
|
||||||
|
with bug fixes, new OpenGL extension support and new releases.
|
||||||
|
|
||||||
|
GLEW was developed by [Milan Ikits](http://www.cs.utah.edu/~ikits/)
|
||||||
|
and [Marcelo Magallon](http://wwwvis.informatik.uni-stuttgart.de/~magallon/).
|
||||||
|
Aaron Lefohn, Joe Kniss, and Chris Wyman were the first users and also
|
||||||
|
assisted with the design and debugging process.
|
||||||
|
|
||||||
|
The acronym GLEW originates from Aaron Lefohn.
|
||||||
|
Pasi Kärkkäinen identified and fixed several problems with
|
||||||
|
GLX and SDL. Nate Robins created the `wglinfo` utility, to
|
||||||
|
which modifications were made by Michael Wimmer.
|
||||||
|
|
||||||
|
## Contributions
|
||||||
|
|
||||||
|
GLEW welcomes community contributions. Typically these are co-ordinated
|
||||||
|
via [Issues](https://github.com/nigels-com/glew/issues) or
|
||||||
|
[Pull Requests](https://github.com/nigels-com/glew/pulls) in the
|
||||||
|
GitHub web interface.
|
||||||
|
|
||||||
|
Be sure to mention platform and compiler toolchain details when filing
|
||||||
|
a bug report. The output of `glewinfo` can be quite useful for discussion
|
||||||
|
also.
|
||||||
|
|
||||||
|
Generally GLEW is usually released once a year, around the time of the Siggraph
|
||||||
|
computer graphics conference. If you're not using the current release
|
||||||
|
version of GLEW, be sure to check if the issue or bug is fixed there.
|
||||||
|
|
||||||
|
## Copyright and Licensing
|
||||||
|
|
||||||
|
GLEW is originally derived from the EXTGL project by Lev Povalahev.
|
||||||
|
The source code is licensed under the
|
||||||
|
[Modified BSD License](http://glew.sourceforge.net/glew.txt), the
|
||||||
|
[Mesa 3-D License](http://glew.sourceforge.net/mesa.txt) (MIT) and the
|
||||||
|
[Khronos License](http://glew.sourceforge.net/khronos.txt) (MIT).
|
||||||
|
|
||||||
|
The automatic code generation scripts are released under the
|
||||||
|
[GNU GPL](http://glew.sourceforge.net/gpl.txt).
|
18
glew-cmake/fetch-content.cmake
Normal file
18
glew-cmake/fetch-content.cmake
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.4)
|
||||||
|
project(fetch_content)
|
||||||
|
|
||||||
|
include(FetchContent)
|
||||||
|
FetchContent_Declare(
|
||||||
|
glew
|
||||||
|
GIT_REPOSITORY https://github.com/Perlmint/glew-cmake.git
|
||||||
|
GIT_TAG origin/master
|
||||||
|
)
|
||||||
|
FetchContent_GetProperties(glew)
|
||||||
|
if(NOT glew_POPULATED)
|
||||||
|
FetchContent_Populate(glew)
|
||||||
|
|
||||||
|
add_subdirectory(${glew_SOURCE_DIR} ${glew_BINARY_DIR} EXCLUDE_FROM_ALL)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_executable(glewinfo glewinfo.c)
|
||||||
|
target_link_libraries(glewinfo PRIVATE libglew_static)
|
@ -65,6 +65,10 @@ source_update () {
|
|||||||
AFTER_COMMIT=`git rev-parse HEAD`
|
AFTER_COMMIT=`git rev-parse HEAD`
|
||||||
if [ "$BEFORE_COMMIT" != "$AFTER_COMMIT" ]; then
|
if [ "$BEFORE_COMMIT" != "$AFTER_COMMIT" ]; then
|
||||||
echo "Source Updated"
|
echo "Source Updated"
|
||||||
|
git checkout original_repo/${GIT_BRANCH_NAME} -- README.md
|
||||||
|
git mv -f README.md README_glew.md
|
||||||
|
git checkout $BEFORE_COMMIT -- README.md
|
||||||
|
git add -f README.md README_glew.md
|
||||||
git commit --amend -m "Merge ${ORIGINAL_REPO_URL} into ${GIT_BRANCH_NAME} HEAD at $(TZ=GMT date)"
|
git commit --amend -m "Merge ${ORIGINAL_REPO_URL} into ${GIT_BRANCH_NAME} HEAD at $(TZ=GMT date)"
|
||||||
git push ${PUSH_ARG} origin $GIT_BRANCH_NAME:$GIT_BRANCH_NAME
|
git push ${PUSH_ARG} origin $GIT_BRANCH_NAME:$GIT_BRANCH_NAME
|
||||||
PUSH_COUNT=$((PUSH_COUNT + 1))
|
PUSH_COUNT=$((PUSH_COUNT + 1))
|
||||||
@ -118,7 +122,8 @@ import_tags () {
|
|||||||
do
|
do
|
||||||
echo "Import $TAG"
|
echo "Import $TAG"
|
||||||
git checkout $TAG -- .
|
git checkout $TAG -- .
|
||||||
git checkout master -- CMakeLists.txt GeneratePkgConfig.cmake
|
git mv -f README.md README_glew.md
|
||||||
|
git checkout master -- CMakeLists.txt GeneratePkgConfig.cmake README.md
|
||||||
cd "$WORKSPACE/auto"
|
cd "$WORKSPACE/auto"
|
||||||
COMMIT_TIME=`git log -1 $TAG --format=%ct`
|
COMMIT_TIME=`git log -1 $TAG --format=%ct`
|
||||||
echo "Patch perl scripts for new version"
|
echo "Patch perl scripts for new version"
|
||||||
|
Loading…
Reference in New Issue
Block a user