Skip to content

Commit 1e7b174

Browse files
authored
Build fixes for v0.19 (#7128)
* Prevent libomp linking when libomp5-dev is installed, due to cmake adding the libc++ dir as a linker search path. In sycl mode, libiomp is the default OMP runtime. Do not install clang to prevent libomp-dev being installed. DEVELOPER_BUILD option for SYCL CI ccache gz -> xz Dockerfile for building docs. Use cxx11 abi pytorch to allow building both torch and tf docs at once. * Use glfw null platform auto selection * Upgrade glew to v2.2 * Fix GLFW platform selection when re-initialized. GLFW remembers last null platform. * macOS script typos
1 parent 8fa7438 commit 1e7b174

21 files changed

+15500
-6562
lines changed

.github/workflows/ubuntu-sycl.yml

+9-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@ permissions: {}
33

44
on:
55
workflow_dispatch:
6+
inputs:
7+
developer_build:
8+
description: 'Set to OFF for Release wheels'
9+
required: false
10+
default: 'ON'
611
push:
712
branches:
813
- main
@@ -16,11 +21,12 @@ concurrency:
1621
env:
1722
NPROC: 2
1823
GCE_CLI_GHA_VERSION: "416.0.0"
24+
DEVELOPER_BUILD: ${{ github.event.inputs.developer_build || 'ON' }}
1925

2026
jobs:
2127
ubuntu-sycl:
2228
permissions:
23-
contents: read
29+
contents: write # Release upload
2430
runs-on: ubuntu-latest
2531
strategy:
2632
fail-fast: false
@@ -56,7 +62,7 @@ jobs:
5662
name: open3d-sycl-linux-wheel-and-binary
5763
path: |
5864
open3d-*.whl
59-
open3d-*.tar.xz
65+
open3d-devel-*.tar.xz
6066
if-no-files-found: error
6167
- name: Update devel release
6268
if: ${{ github.ref == 'refs/heads/main' && matrix.BUILD_SHARED_LIBS == 'ON' }}
@@ -65,7 +71,7 @@ jobs:
6571
run: |
6672
if [ ${{ matrix.BUILD_SHARED_LIBS }} == 'ON' ] ; then
6773
gh release upload main-devel open3d-*.whl --clobber
68-
gh release upload main-devel open3d-*.tar.xz --clobber
74+
gh release upload main-devel open3d-devel-*.tar.xz --clobber
6975
fi
7076
gh release view main-devel
7177

.github/workflows/ubuntu-wheel.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ jobs:
109109
- name: Upload ccache to GCS
110110
if: ${{ github.ref == 'refs/heads/main' }}
111111
run: |
112-
gsutil cp ${GITHUB_WORKSPACE}/${{ env.CCACHE_TAR_NAME }}.tar.gz gs://open3d-ci-cache/
112+
gsutil cp ${GITHUB_WORKSPACE}/${{ env.CCACHE_TAR_NAME }}.tar.xz gs://open3d-ci-cache/
113113
- name: Update devel release
114114
if: ${{ github.ref == 'refs/heads/main' }}
115115
env:

3rdparty/find_dependencies.cmake

+2-2
Original file line numberDiff line numberDiff line change
@@ -1383,8 +1383,8 @@ if(BUILD_GUI)
13831383

13841384
# Ensure that libstdc++ gets linked first.
13851385
target_link_libraries(3rdparty_filament INTERFACE -lstdc++
1386-
${CPP_LIBRARY} ${CPPABI_LIBRARY})
1387-
message(STATUS "Filament C++ libraries: ${CPP_LIBRARY} ${CPPABI_LIBRARY}")
1386+
${CPP_LIBRARY}.1 ${CPPABI_LIBRARY})
1387+
message(STATUS "Filament C++ libraries: ${CPP_LIBRARY}.1 ${CPPABI_LIBRARY}")
13881388
if (LIBCPP_VERSION GREATER 11)
13891389
message(WARNING "libc++ (LLVM) version ${LIBCPP_VERSION} > 11 includes libunwind that "
13901390
"interferes with the system libunwind.so.8 and may crash Python code when exceptions "

3rdparty/glew/LICENSE.txt

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
The OpenGL Extension Wrangler Library
2+
Copyright (C) 2002-2007, Milan Ikits <milan ikits[]ieee org>
3+
Copyright (C) 2002-2007, Marcelo E. Magallon <mmagallo[]debian org>
4+
Copyright (C) 2002, Lev Povalahev
5+
All rights reserved.
6+
7+
Redistribution and use in source and binary forms, with or without
8+
modification, are permitted provided that the following conditions are met:
9+
10+
* Redistributions of source code must retain the above copyright notice,
11+
this list of conditions and the following disclaimer.
12+
* Redistributions in binary form must reproduce the above copyright notice,
13+
this list of conditions and the following disclaimer in the documentation
14+
and/or other materials provided with the distribution.
15+
* The name of the author may be used to endorse or promote products
16+
derived from this software without specific prior written permission.
17+
18+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
22+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26+
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
28+
THE POSSIBILITY OF SUCH DAMAGE.
29+
30+
31+
Mesa 3-D graphics library
32+
Version: 7.0
33+
34+
Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
35+
36+
Permission is hereby granted, free of charge, to any person obtaining a
37+
copy of this software and associated documentation files (the "Software"),
38+
to deal in the Software without restriction, including without limitation
39+
the rights to use, copy, modify, merge, publish, distribute, sublicense,
40+
and/or sell copies of the Software, and to permit persons to whom the
41+
Software is furnished to do so, subject to the following conditions:
42+
43+
The above copyright notice and this permission notice shall be included
44+
in all copies or substantial portions of the Software.
45+
46+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
47+
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
48+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
49+
BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
50+
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
51+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
52+
53+
54+
Copyright (c) 2007 The Khronos Group Inc.
55+
56+
Permission is hereby granted, free of charge, to any person obtaining a
57+
copy of this software and/or associated documentation files (the
58+
"Materials"), to deal in the Materials without restriction, including
59+
without limitation the rights to use, copy, modify, merge, publish,
60+
distribute, sublicense, and/or sell copies of the Materials, and to
61+
permit persons to whom the Materials are furnished to do so, subject to
62+
the following conditions:
63+
64+
The above copyright notice and this permission notice shall be included
65+
in all copies or substantial portions of the Materials.
66+
67+
THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
68+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
69+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
70+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
71+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
72+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
73+
MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.

3rdparty/glew/README.md

+88-20
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# GLEW - The OpenGL Extension Wrangler Library
22

3+
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.
4+
35
![](http://glew.sourceforge.net/glew.png)
46

57
http://glew.sourceforge.net/
@@ -10,12 +12,37 @@ https://github.com/nigels-com/glew
1012
[![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)
1113
[![Download](https://img.shields.io/sourceforge/dm/glew.svg)](https://sourceforge.net/projects/glew/files/latest/download)
1214

15+
## Table of Contents
16+
17+
* [Downloads](#downloads)
18+
* [Recent snapshots](#recent-snapshots)
19+
* [Build](#build)
20+
* [Linux and Mac](#linux-and-mac)
21+
* [Using GNU Make](#using-gnu-make)
22+
* [Install build tools](#install-build-tools)
23+
* [Build](#build-1)
24+
* [Linux EGL](#linux-egl)
25+
* [Linux OSMesa](#linux-osmesa)
26+
* [Linux mingw-w64](#linux-mingw-w64)
27+
* [Using cmake](#using-cmake)
28+
* [Install build tools](#install-build-tools-1)
29+
* [Build](#build-2)
30+
* [Windows](#windows)
31+
* [Visual Studio](#visual-studio)
32+
* [MSYS/Mingw](#msysmingw)
33+
* [MSYS2/Mingw-w64](#msys2mingw-w64)
34+
* [glewinfo](#glewinfo)
35+
* [Code Generation](#code-generation)
36+
* [Authors](#authors)
37+
* [Contributions](#contributions)
38+
* [Copyright and Licensing](#copyright-and-licensing)
39+
1340
## Downloads
1441

1542
Current release is [2.1.0](https://sourceforge.net/projects/glew/files/glew/2.1.0/).
1643
[(Change Log)](http://glew.sourceforge.net/log.html)
1744

18-
Sources available as
45+
Sources available as
1946
[ZIP](https://sourceforge.net/projects/glew/files/glew/2.1.0/glew-2.1.0.zip/download) or
2047
[TGZ](https://sourceforge.net/projects/glew/files/glew/2.1.0/glew-2.1.0.tgz/download).
2148

@@ -25,22 +52,32 @@ Windows binaries for [32-bit and 64-bit](https://sourceforge.net/projects/glew/f
2552

2653
Snapshots may contain new features, bug-fixes or new OpenGL extensions ahead of tested, official releases.
2754

55+
[glew-20200115.tgz](https://sourceforge.net/projects/glew/files/glew/snapshots/glew-20200115.tgz/download) *GLEW 2.2.0 RC3: fixes*
56+
57+
[glew-20190928.tgz](https://sourceforge.net/projects/glew/files/glew/snapshots/glew-20190928.tgz/download) *GLEW 2.2.0 RC2: New extensions, bug fixes*
58+
2859
## Build
2960

3061
It is highly recommended to build from a tgz or zip release snapshot.
3162
The code generation workflow is a complex brew of gnu make, perl and python, that works best on Linux or Mac.
63+
The code generation is known to work on Windows using [MSYS2](https://www.msys2.org/).
3264
For most end-users of GLEW the official releases are the best choice, with first class support.
3365

3466
### Linux and Mac
3567

3668
#### Using GNU Make
3769

70+
GNU make is the primary build system for GLEW, historically.
71+
It includes targets for building the sources and headers, for maintenance purposes.
72+
3873
##### Install build tools
3974

40-
Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev libosmesa-dev`
75+
Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev`
4176

4277
RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel`
4378

79+
FreeBSD: `# pkg install xorg lang/gcc git cmake gmake bash python perl5`
80+
4481
##### Build
4582

4683
$ make
@@ -51,22 +88,42 @@ Targets: `all, glew.lib (sub-targets: glew.lib.shared, glew.lib.static), glew
5188

5289
Variables: `SYSTEM=linux-clang, GLEW_DEST=/usr/local, STRIP=`
5390

54-
_Note: may need to make **auto** folder_
91+
_Note: you may need to call `make` in the **auto** folder first_
92+
93+
##### Linux EGL
94+
95+
$ sudo apt install libegl1-mesa-dev
96+
$ make SYSTEM=linux-egl
97+
98+
##### Linux OSMesa
99+
100+
$ sudo apt install libosmesa-dev
101+
$ make SYSTEM=linux-osmesa
102+
103+
##### Linux mingw-w64
104+
105+
$ sudo apt install mingw-w64
106+
$ make SYSTEM=linux-mingw32
107+
$ make SYSTEM=linux-mingw64
55108

56109
#### Using cmake
57110

111+
The cmake build is mostly contributer maintained.
112+
Due to the multitude of use cases this is maintained on a _best effort_ basis.
113+
Pull requests are welcome.
114+
58115
*CMake 2.8.12 or higher is required.*
59116

60117
##### Install build tools
61118

62-
Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libXmu-dev libXi-dev libgl-dev cmake`
119+
Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev cmake git`
63120

64-
RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel cmake`
121+
RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel cmake git`
65122

66123
##### Build
67124

68125
$ cd build
69-
$ cmake ./cmake
126+
$ cmake ./cmake
70127
$ make -j4
71128

72129
| Target | Description |
@@ -90,9 +147,9 @@ RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel c
90147

91148
#### Visual Studio
92149

93-
Use the provided Visual Studio project file in build/vc12/
150+
Use the provided Visual Studio project file in build/vc15/
94151

95-
Projects for vc6 and vc10 are also provided
152+
Projects for vc6, vc10, vc12 and vc14 are also provided
96153

97154
#### MSYS/Mingw
98155

@@ -112,7 +169,7 @@ Available from [Msys2](http://msys2.github.io/) and/or [Mingw-w64](http://mingw-
112169

113170
Requirements: bash, make, gcc
114171

115-
$ pacman -S gcc make mingw-w64-i686-gcc mingw-w64-x86_64-gcc
172+
$ pacman -S gcc make mingw-w64-i686-gcc mingw-w64-x86_64-gcc
116173
$ make
117174
$ make install
118175
$ make install.all
@@ -123,7 +180,7 @@ Alternative toolchain: `SYSTEM=msys, SYSTEM=msys-win32, SYSTEM=msys-win64`
123180

124181
`glewinfo` is a command-line tool useful for inspecting the capabilities of an
125182
OpenGL implementation and GLEW support for that. Please include `glewinfo.txt`
126-
with bug reports, as appropriate.
183+
with bug reports, as appropriate.
127184

128185
---------------------------
129186
GLEW Extension Info
@@ -143,7 +200,7 @@ with bug reports, as appropriate.
143200
glDrawRangeElements: OK
144201
glTexImage3D: OK
145202
glTexSubImage3D: OK
146-
203+
147204
...
148205

149206
## Code Generation
@@ -159,10 +216,6 @@ download a pre-generated (unsupported) snapshot:
159216

160217
https://sourceforge.net/projects/glew/files/glew/snapshots/
161218

162-
Travis-built snapshots are also available:
163-
164-
https://glew.s3.amazonaws.com/index.html
165-
166219
## Authors
167220

168221
GLEW is currently maintained by [Nigel Stewart](https://github.com/nigels-com)
@@ -171,20 +224,35 @@ with bug fixes, new OpenGL extension support and new releases.
171224
GLEW was developed by [Milan Ikits](http://www.cs.utah.edu/~ikits/)
172225
and [Marcelo Magallon](http://wwwvis.informatik.uni-stuttgart.de/~magallon/).
173226
Aaron Lefohn, Joe Kniss, and Chris Wyman were the first users and also
174-
assisted with the design and debugging process.
227+
assisted with the design and debugging process.
175228

176229
The acronym GLEW originates from Aaron Lefohn.
177230
Pasi K&auml;rkk&auml;inen identified and fixed several problems with
178231
GLX and SDL. Nate Robins created the `wglinfo` utility, to
179-
which modifications were made by Michael Wimmer.
232+
which modifications were made by Michael Wimmer.
233+
234+
## Contributions
235+
236+
GLEW welcomes community contributions. Typically these are co-ordinated
237+
via [Issues](https://github.com/nigels-com/glew/issues) or
238+
[Pull Requests](https://github.com/nigels-com/glew/pulls) in the
239+
GitHub web interface.
240+
241+
Be sure to mention platform and compiler toolchain details when filing
242+
a bug report. The output of `glewinfo` can be quite useful for discussion
243+
also.
244+
245+
Generally GLEW is usually released once a year, around the time of the Siggraph
246+
computer graphics conference. If you're not using the current release
247+
version of GLEW, be sure to check if the issue or bug is fixed there.
180248

181249
## Copyright and Licensing
182250

183251
GLEW is originally derived from the EXTGL project by Lev Povalahev.
184-
The source code is licensed under the
185-
[Modified BSD License](http://glew.sourceforge.net/glew.txt), the
252+
The source code is licensed under the
253+
[Modified BSD License](http://glew.sourceforge.net/glew.txt), the
186254
[Mesa 3-D License](http://glew.sourceforge.net/mesa.txt) (MIT) and the
187255
[Khronos License](http://glew.sourceforge.net/khronos.txt) (MIT).
188256

189-
The automatic code generation scripts are released under the
257+
The automatic code generation scripts are released under the
190258
[GNU GPL](http://glew.sourceforge.net/gpl.txt).

0 commit comments

Comments
 (0)