If we compile CGAL with having Qt present on arm, Qt will use OpenGL ES
headers. But CGAL/gl.h includes specifically include <GL/gl.h> which are
the desktop headers. They cannot be mixed.
That is a workaround for the bug about the partial specialization of
boost::is_enum<std::pair<T, U> >
being too late.
The bug has been in Boost-1.62 only. For that version (currently the
default version in Debian-testing), we include a header from Boost
container as soon as possible: in `<CGAL/config.h>`.
-- Actually fail compilation even if CGAL_NO_DEPRECATION_WARNINGS is defined
-- An optional message can be passed through CGAL_DEPRECATED_MESSAGE_DETAILS
-- Print the replacement header in all cases, not just when warning about
the deprecated header.
- move `CGAL_WARNING` in `<CGAL/config.h>`,
- create the macro `CGAL_pragma_warning`,
- use `CGAL_pragma_warning` to simplify `<CGAL/license/lgpl.h>` and
`<CGAL/license/gpl.h.in>`.
- add messages in `include/CGAL/license/generate_files.cmake`
- add test files, that do nothing but can be modified to check errors
and warning.
If Boost implementation of thread local storage is used, the order of
destructors is reversed, compared to C++11 `static thread_local`. The
solution for CORE `MemoryPool<T>` is to make the static variable a
static member of the class, and initialize the pointer only inside the
function. That ensures that the destructor will be called after the
destructor of local static variables.
In order to be future compatible I added the suffix "_0" for "with 0 arguments"
The version without suffix will later get the suffix "_1"
I don't do that now, as there are many open branches to modify
We can do that once they are in master.
`BOOST_HAS_VARIADIC_TMPL` and `BOOST_NO_CXX11_VARIADIC_TEMPLATES` can be
wrong, with Boost-1.57 and gcc>=5.0.
Fixes the following warnings with gcc>=5.0 in C++98 mode:
> CGAL-4.8-Ic-106/include/CGAL/array.h:78:31: warning: variadic templates only available with -std=c++11 or -std=gnu++11
> template< typename T, typename... Args >
> ^
> CGAL-4.8-Ic-106/include/CGAL/array.h:80:28: warning: variadic templates only available with -std=c++11 or -std=gnu++11
> cpp11::array< T, 1 + sizeof...(Args) >
> ^
> CGAL-4.8-Ic-106/include/CGAL/array.h:81:42: warning: variadic templates only available with -std=c++11 or -std=gnu++11
> make_array(const T & t, const Args & ... args)
> ^
The implementation is simplified.
If no implementation of `::atomic` is available, `CGAL_NO_ATOMIC` is
defined to an error message (replaced the `#error`).
- Change the way the macros `CGAL_CAN_USE_CXX11_THREAD_LOCAL` and
`CGAL_CAN_USE_CXX11_MUTEX` are defined, so that other compilers are
also supported.
- Add the macro `CGAL_CAN_USE_CXX11_ATOMIC` and the header
`<CGAL/atomic.h>`.
The deprecated names may be removed from future versions of Boost, and
we do not want our C++11 support be dropped for users using newest
versions of Boost.
This macro is always defined. Its value will be true when assertions are defined
and false when assertions are not defined. This macro can then be used in place
of a true false constant, such as is needed for CGAL_NOEXCEPT.
This macro is available for future compatibility with c++11, which
by default marks destructors noexcept(true). Some destructors
in CGAL do throw exceptions an so should be marked noexcept(false).
Since noexcept is not available in c++0x and below the macro is
disabled when CGAL_CXX11 is not defined since it is not required.
This macro has to be larger than the default value
and it must be set before including <boost/parameter.hpp>
Instead of setting it to 12 in the packages that
need it, we do this in <CGAL/config.h> and produce
an error if a user has set it to a value < 12
There was eventually no VC13.
- In cmake/modules/CGAL_GeneratorSpecificSettings.cmake replace it by
MSVC14. Add a support for a futur MSVC15.
- Synchronize include/CGAL/auto_link/auto_link.h from the future
Boost-1.59 (not yet released), to add support for VC14/MSVC2015.
somehow, boost/random.hpp includes boost/type_traits/has_binary_operator.hpp,
and the "parse error" happens in this file (as said in the bug report)
Also update the link to the official Qt bug report
Introduces a redesign of the CGAL extension of the BGL API
Successfully tested in CGAL-4.5-Ic-90
Approved by the Release Manager
Conflicts:
Surface_mesh_segmentation/test/Surface_mesh_segmentation/test_compute_sdf_values_and_segment_exact_rational.cpp
A warning of clang showed me my mistake:
In file included from /no-raid/home/lrineau/CGAL/CGAL-4.4-I-10/cmake/platforms/x86-64_Linux-Fedora18_llvm-clang-with-g++-4.7/test/Kinetic_data_structures/timings.cpp:14:
In file included from /no-raid/home/lrineau/CGAL/CGAL-4.4-I-10/include/CGAL/Kinetic/Delaunay_triangulation_3.h:32:
In file included from /no-raid/home/lrineau/CGAL/CGAL-4.4-I-10/include/CGAL/Delaunay_triangulation_3.h:31:
In file included from /no-raid/home/lrineau/CGAL/CGAL-4.4-I-10/include/CGAL/Triangulation_3.h:37:
/no-raid/home/lrineau/CGAL/CGAL-4.4-I-10/include/CGAL/Triangulation_data_structure_3.h:938:7: warning: logical not is only applied to the left hand side of this comparison [-Wlogical-not-parentheses]
CGAL_assume(index_v_in_n0 <= 1);
^ ~~
/no-raid/home/lrineau/CGAL/CGAL-4.4-I-10/include/CGAL/assertions.h:86:29: note: expanded from macro 'CGAL_assume'
# define CGAL_assume(EX) CGAL_ASSUME(EX)
^
/no-raid/home/lrineau/CGAL/CGAL-4.4-I-10/include/CGAL/config.h:334:30: note: expanded from macro 'CGAL_ASSUME'
# define CGAL_ASSUME(EX) if(!EX) { __builtin_unreachable(); }
^
Trivial bug-fix.
CGAL_assume(EX) is like CGAL_assertion, but is not disabled in release
mode. In debug mode, it is similar to CGAL_assertion(). In release mode, it
uses builtins of the compilateur, like the MSVC __assume or the g++/clang
__builtin_unreachable to give an hint to the compiler that some situation
in the code cannot happen.
In order to fix such a warning from g++-4.8:
warning: typedef ‘boost_static_assert_typedef_241’ locally defined but
not used [-Wunused-local-typedefs]
then:
- create one macro CGAL_UNUSED that is "__attribute__ ((__unused__))"
with g++ or empty otherwise,
- use it after BOOST_STATIC_ASSERT in the definition of
CGAL_static_assertion.
The Intel Compiler, even when it tries to emulate the GNU/C++ compiler,
does not implement the GNU extension "statement expressions". The macro
CGAL_CFG_NO_STATEMENT_EXPRESSIONS must be defined with __INTEL_COMPILER is
defined.
When one is using the non-deprecated form of the macro, the version of
the deprecation has to be used - not the version where the original
macro appeared first.
Those cause trouble, because on MSVC the include paths for tr1
components are different from gcc. Instead of fixing up the include
paths depending on platform, just never use a tr1 component. Nothing
of value is lost compared to the boost equivalents and it removes
another code-path.
That is a followup to the following commit:
| ------------------------------------------------------------------------
| r71090 | pmoeller | 2012-08-07 13:04:32 +0200 (Tue, 07 Aug 2012) | 6 lines
| Changed paths:
| M /branches/next/Alpha_shapes_2/include/CGAL/Alpha_shape_2.h
| M /branches/next/Circulator/include/CGAL/circulator.h
| M /branches/next/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Reflex_vertex_searcher.h
| M /branches/next/Intersections_3/test/Intersections_3/bbox_other_do_intersect_test.cpp
| M /branches/next/Kernel_d/include/CGAL/Cartesian_d.h
| M /branches/next/Mesh_3/include/CGAL/IO/File_medit.h
| M /branches/next/Mesh_3/include/CGAL/Mesh_cell_criteria_3.h
| M /branches/next/Mesh_3/include/CGAL/Mesh_edge_criteria_3.h
| M /branches/next/Mesh_3/include/CGAL/Mesh_facet_criteria_3.h
| M /branches/next/Mesh_3/include/CGAL/make_mesh_3.h
| M /branches/next/Nef_2/include/CGAL/Bounded_kernel.h
| M /branches/next/Nef_2/include/CGAL/Nef_polyhedron_2.h
| M /branches/next/Nef_3/include/CGAL/Nef_3/ID_support_handler.h
| M /branches/next/Nef_3/include/CGAL/Nef_3/Infimaximal_box.h
| M /branches/next/Nef_3/include/CGAL/Nef_3/vertex_cycle_to_nef_3.h
| M /branches/next/Nef_3/include/CGAL/Nef_polyhedron_3.h
| M /branches/next/Nef_3/test/Nef_3/nef_union_error_llvm.cpp
| M /branches/next/Nef_S2/include/CGAL/Nef_S2/SM_overlayer.h
| M /branches/next/OpenNL/include/CGAL/OpenNL/blas.h
| M /branches/next/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3.h
| M /branches/next/Point_set_processing_3/include/CGAL/mst_orient_normals.h
| M /branches/next/QP_solver/include/CGAL/QP_solver/QP_functions_impl.h
| M /branches/next/STL_Extension/include/CGAL/iterator.h
| M /branches/next/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_simple_site_2.h
| M /branches/next/Subdivision_method_3/include/CGAL/Polyhedron_decorator_3.h
| M /branches/next/Subdivision_method_3/include/CGAL/Subdivision_mask_3.h
| M /branches/next/Surface_mesher/include/CGAL/Surface_mesh_default_criteria_3.h
| M /branches/next/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Adaptation_traits_functors.h
| M /branches/next/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Default_site_inserters.h
| M /branches/next/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Default_site_removers.h
|
| WARNFIX: Silence a good part of unused variable/parameter warnings.
|
| Wextra results in a dreadful wall of yellow in the test-suite and is
| scary when using CGAL. Reduce some of the noise by silencing the
| obvious cases with CGAL_USE or comments.
|
| ------------------------------------------------------------------------
The reason is that everything from CGAL/Testsuite/ is removed in public
releases (that was discussed at a CGAL developers meetings, long ago). That
means that r71090 introduced compilation errors undetectable by the tests
of internal releases. I hope that the minutes of that developers meeting
say that I was against the removal of headers between internal and public
releases! -- Laurent Rineau
| ------------------------------------------------------------------------
| r68020 | cjamin | 2012-03-12 18:27:30 +0100 (Mon, 12 Mar 2012) | 1 line
|
| To be able to build CGAL on MSVC11
|
------------------------------------------------------------------------
It adapts CGAL CMake scripts and CGAL auto-link headers to MSVC2011.
Thanks to Clement Jamin, from Inria, for the patch.
We adopt the naming scheme of Boost libraries, with the "lib" prefix for
static libraries. And with the CGAL_VERSION as suffix.
For example, static libraries will be named:
libCGAL_Qt4-vc100-mt-gd-3.10-Ic-123.lib
and DLL will be named:
CGAL_Qt4-vc100-mt-gd-3.10-Ic-123.dll
I have grepped for auto_link/(GMP|MFR)|AUTO_?LINK_(GMP|MPFR) and I removed
completely any support for auto-linking of GMP and MPFR from CGAL.
That is no longer necessary, nor relevant, no that we provide precompiled
GMP and MPFR libraries under standard names libgmp-10.lib and
libmpfr-4.lib.
To test in candidates:
Core
Installation
Number_types
Freie Universitaet Berlin (Germany), Martin-Luther-University Halle-Wittenberg
(Germany) and RISC Linz (Austria) as they transfer the copyright to other
sites.
by namespace CGAL { and } //namespace CGAL. in all .h and .cpp files
in a directory.
Apply it to all packages in the trunk
Remove macro definition from the config.h file.
CGAL 3.5 will include TAUCS/BLAS/LAPACK precompiled libraries for Visual C++ 8.0 and 9.0.
Auto-link is modified accordingly.
* Also fixed compatibility of cgal_test_with_cmake.bat scripts with VC++ 9.0.