The CMake script was only testing if the sub-directory auxiliary/taucs/
existed. That directory exists in Git for a while, because we ship a README
file in it. Now the CMake script checks for auxiliary/taucs/include/. That
is as naive as before but at least it will work.
/wd4503 disables the warning C4503 "decorated name length exceeded"
/bigobj is sometimes required, and the only flaw is the incompatibility
with MSVS before MSVS 2005.
1/ Check the version using 'find_package_handle_standard_args' internal
checking of version, instead of a home-made check.
2/ No need to add EIGEN3_INCLUDE_DIR in the cache, as find_path does it.
3/ Call 'find_package_handle_standard_args' even if EIGEN3_INCLUDE_DIR is
already and valid in the cache.
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.
If the current working directory is a checkout of a commit that is not a
branch, for example, a commit in the ancestors of a branch, then CGAL CMake
scripts gave that CMake error:
== CMake setup ==
fatal: ref HEAD is not a symbolic ref
CMake Error at Installation/cmake/modules/CGAL_SCM.cmake:36 (string):
string sub-command REGEX, mode REPLACE needs at least 6 arguments total to
command.
Call Stack (most recent call first):
CMakeLists.txt:17 (include)
== CMake setup (DONE) ==
This patch fixes the error. If HEAD is not a branch, then CGAL_GIT_BRANCH
is equal to "HEAD".
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.
- proper indentation
- merge double occurences
- standardize location at the end block, before DOC
tested with GMP(XX), MPFR, MPFI, LEDA, RS(3), NTL and a (small) number of ways to specify library
locations via environment and CMake variables, on Debian 64bit
That feature can be enabled with g++, clang++, and icpc (intel). It could
be implemented for MSVC, with the flag /Zs, but that is not yet done (and
probably will not).
The option is controlled by a CMake option, CGAL_ENABLE_CHECK_HEADERS, that
is disabled by default. If that option is enabled by the user, then CMake
will check if the compiler $CXX understand the syntax:
$CXX -x c++ -fsyntax-only CGAL/header.h
and send an error otherwise.
Then phony targets will be created:
- a target check_CGAL__header_h for each header <CGAL/header.h>,
- a target check_pkg_<pkg> for each package <pgk>,
- and a target check_headers for the whole CGAL.
Those new targets currently give a lot of compilation errors if
CGAL_ENABLE_CHECK_HEADERS is enabled!
+ fix several missing includes in Mesh_2.
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.
This commit also updates the respective mock-headers when the
corresponding .tex documentation has changed. This has been the case for:
AABB_tree/doc_tex/AABB_tree_ref/AABBGeomTraits.tex
AABB_tree/doc_tex/AABB_tree_ref/AABBTraits.tex
AABB_tree/doc_tex/AABB_tree_ref/AABB_traits.tex
Mesh_3/doc_tex/Mesh_3_ref/parameters_features.tex
Mesh_3/doc_tex/Mesh_3_ref/parameters_no_features.tex
Number_types/doc_tex/NumberTypeSupport_ref/Interval_nt.tex
Number_types/doc_tex/NumberTypeSupport_ref/Lazy_exact_nt.tex
Spatial_searching/doc_tex/Spatial_searching_ref/Search_traits_2.tex
Spatial_searching/doc_tex/Spatial_searching_ref/Search_traits_3.tex
Triangulation_2/doc_tex/Triangulation_2_ref/Constrained_Delaunay_triangulation_2.tex
That is a followup-to my commit last year:
| ------------------------------------------------------------------------
| r63198 | lrineau | 2011-04-28 19:45:22 +0200 (Thu, 28 Apr 2011) | 5 lines
|
| Try to fix my last revision about cmake_policy, with CMake-2.6.x
|
| CMake gives an error if one tries to use cmake_policy(VERSION x.y.z) if
| x.y.z is greater than the current CMake version.
|
| ------------------------------------------------------------------------
The following check:
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" VERSION_GREATER 2.6)
is useless just after a call to:
cmake_minimum_required(VERSION 2.6.2)
The script used to fix that was:
#!/usr/bin/env perl
$replacement=<<'END';
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_GREATER 2.8.3)
cmake_policy(VERSION 2.8.4)
else()
cmake_policy(VERSION 2.6)
endif()
END
while(<>) {
if(/if\("\${CMAKE_MAJOR_VERSION}.\${CMAKE_MINOR_VERSION}" VERSION_GREATER 2.6\)/) {
while(<>) {
if(/^endif\(\)/) {
print "$replacement";
while(<>) {
print;
}
exit 0
}
}
}
print;
}
If CGAL_ENABLE_PRECONFIG is set to OFF, currently the CMake configuration
fails. That option is turned into an internal cache variable set to ON by
default.
| ------------------------------------------------------------------------
| r70941 | lrineau | 2012-08-01 16:50:50 +0200 (Wed, 01 Aug 2012) | 1 line
|
| Rename my two Intel Compiler platforms
| ------------------------------------------------------------------------
| r70940 | lrineau | 2012-08-01 16:44:02 +0200 (Wed, 01 Aug 2012) | 1 line
|
| Update the Intel Compiler to 12.1 (aka 2011_sp1)
| ------------------------------------------------------------------------
and change the Installation/changes.html: CGAL-4.1.0 will not support the
Intel Compiler 12.1, but only 12.0. That is too late.
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
removed almost all occurenced (missing UseFiles). While
doing so, some CMakeLists.txt could also be simplified. In fact
many more CMakeLists.txt can be simplified, in one of two ways:
1) add external libs to CGAL_3RD_PARTY_LIBRARIES and
2) call cgal_create_single_source_program
A FindFoobar module must not include a UseFoobar file. CGAL_UseRS3 now
includes CGAL_UseMPFI, and not FindRS and FindRS3.
+ Fix also a typo in a message of FindRS3.
gcc has an option -isystem, that can replace -I. The documentation is:
-isystem dir
Search dir for header files, after all directories specified by -I but
before the standard system directories. Mark it as a system directory,
so that it gets the same special treatment as is applied to the
standard system directories. If dir begins with "=", then the "=" will
be replaced by the sysroot prefix; see --sysroot and -isysroot.
The "special treatment" means that gcc will not warn about constructions in
headers in directories pointed by -isystem instead of -I.
In the CGAL testsuite, there are a lot of warnings that comes from
third-party libraries (mostly from Boost, but also from Eigen).
This patch tells cmake to use -isystem with gcc, for all CGAL 3rd-party
directories.
When the value of the Boolean cache variable BUILD_SHARED_LIBS is modified,
there was a bug that the variable CGAL_LIBRARY_NAME,
CGAL_Core_LIBRARY_NAME, CGAL_Qt4_LIBRARY_NAME, and so on, were not
updated. As a consequence, the file CGALConfig.cmake produced in the
installation directory was not correct: it was referring to .so files
whereas the installed binaries were .a files, or the reverse.
This patch fixes the issue.
to the FindQt3 module shipped with CMake
CGAL FindQt3-patched module uses the prefix QT3_ for all cache variables,
instead of just QT_. That allows to use Qt3 and Qt4 in the same project
(but for different binaries of course).
As of Boost 1.50 it is required to link Boost.System with CGAL. System
has been a Thread dependency all along and we simply never linked to
it and apparently got lucky.
Add it to the dependencies, add it in the manual and INSTALL file.