Merge branch 'releases/CGAL-4.12-branch'

This commit is contained in:
Laurent Rineau 2018-05-25 10:43:23 +02:00
commit ad588cfe87
5 changed files with 49 additions and 30 deletions

View File

@ -41,11 +41,6 @@ make
where the second line creates a `CMakeLists.txt` file (check where the second line creates a `CMakeLists.txt` file (check
its options in Section \ref seccreate_cgal_CMakeLists for various details). its options in Section \ref seccreate_cgal_CMakeLists for various details).
Note that, until CGAL 4.6, \ref seccreate_cgal_CMakeLists only recognized
source files ending in `.cpp` or `.C`; if the above fails on the `cmake` command
or produces an empty `Makefile`, check whether your source files go by such a name.
Recent versions find all source files ending in
`.cc`, `.cp`, `.cxx`, `.cpp`, `.CPP`, `.c++`, or `.C`.
In a less ideal world, you probably have to install CMake, a makefile In a less ideal world, you probably have to install CMake, a makefile
generator, and third party libraries. That is what this manual is about. generator, and third party libraries. That is what this manual is about.
@ -105,7 +100,7 @@ It is a self extracting executable that installs the \cgal source, and that allo
to select and download some precompiled third party libraries. However, you will need to compile to select and download some precompiled third party libraries. However, you will need to compile
the library using your favorite compiler. the library using your favorite compiler.
A <a href="https://www.cgal.org/windows_installation.html">tutorial</a> is provided on how to proceed with Microsoft Visual Studio 2010. A <a href="https://www.cgal.org/windows_installation.html">tutorial</a> is provided on how to proceed with Microsoft Visual Studio.
@ -157,17 +152,18 @@ installation manual. The \cgal manual must be downloaded separately from
\section seccompilers Supported Compilers \section seccompilers Supported Compilers
In order to build the \cgal libraries, you need a \cpp compiler. In order to build the \cgal libraries, you need a \cpp compiler.
\cgal \cgalReleaseNumber is supported for the following compilers/operating systems: \cgal \cgalReleaseNumber is supported, that is continuously tested, for the following compilers/operating systems:
| Compiler | Operating System | | Compiler | Operating System |
| :------- | :--------------- | | :------- | :--------------- |
|\sc{Gnu} `g++` 4.1 or later\cgalFootnote{<A HREF="http://gcc.gnu.org/">`http://gcc.gnu.org/`</A>} | Linux / MacOS X | |\sc{Gnu} `g++` 4.1 or later\cgalFootnote{<A HREF="http://gcc.gnu.org/">`http://gcc.gnu.org/`</A>} | Linux / MacOS X |
| | \sc{MS} Windows 95/98/2000/XP/NT4 | | | \sc{MS} Windows |
| \sc{Intel} `C++` 15.0\cgalFootnote{<A HREF="http://software.intel.com/en-us/intel-compilers/">`http://software.intel.com/en-us/intel-compilers/`</A>} | Linux | |\sc{MS} Visual `C++` 12.0, 14.0, 15.0 (\sc{Visual Studio} 2013, 2015, and 2017)\cgalFootnote{<A HREF="http://msdn.microsoft.com/en-us/vstudio/">`http://msdn.microsoft.com/en-us/vstudio/`</A>} | \sc{MS} Windows |
|\sc{MS} Visual `C++` 10.0, 11.0, 12.0, 14.0 (\sc{Visual Studio} 2010, 2012, 2013, and 2015)\cgalFootnote{<A HREF="http://msdn.microsoft.com/en-us/vstudio/">`http://msdn.microsoft.com/en-us/vstudio/`</A>} | \sc{MS} Windows 95/98/2000/XP/NT4/Vista/7/8 | | `Clang` \cgalFootnote{<A HREF="http://clang.llvm.org/">`http://clang.llvm.org/`</A>} compiler version 6.0.0 | Linux |
| `Clang` \cgalFootnote{<A HREF="http://clang.llvm.org/">`http://clang.llvm.org/`</A>} compiler version 3.5 and 3.6.2 | Linux / MacOS X | | Apple `Clang` compiler version 7.0.2 | MacOS X |
| Apple `Clang` compiler version 6.0 and 4.2 | MacOS X |
It may work for older versions of the above listed compilers.
\section secconfigwithcmake Configuring CGAL with CMake \section secconfigwithcmake Configuring CGAL with CMake
@ -247,11 +243,11 @@ generators are added with each release.
Since the choice of the generator determines the type of build files to generate, in some cases Since the choice of the generator determines the type of build files to generate, in some cases
you choose a particular generator as a mean to choose a specific compiler (because they use different you choose a particular generator as a mean to choose a specific compiler (because they use different
build files). For example, the following generates solution files for build files). For example, the following generates solution files for
use in Visual \cpp 11.0 on a 64bit machine: use in Visual \cpp 15.0 on a 64bit machine:
<PRE> <PRE>
cd CGAL-\cgalReleaseNumber cd CGAL-\cgalReleaseNumber
cmake -G"Visual Studio 11 Win64" . cmake -G"Visual Studio 15 2017 Win64" .
</PRE> </PRE>
In other cases, however, the generator doesn't directly identify a In other cases, however, the generator doesn't directly identify a
@ -381,8 +377,8 @@ libCGAL_Core, libCGAL_ImageIO, and libCGAL_Qt5).
\cgal heavily uses the \stl, and in particular adopted \cgal heavily uses the \stl, and in particular adopted
many of its design ideas. You can find online many of its design ideas. You can find online
documentation for the \stl at various web sites, for instance, documentation for the \stl at various web sites, for instance,
<A HREF="http://www.sgi.com/tech/stl/">`http://www.sgi.com/tech/stl/`</A>, <A HREF="http://www.cplusplus.com/reference/">`http://www.cplusplus.com/reference/`</A>, <A HREF="http://www.cplusplus.com/reference/">`http://www.cplusplus.com/reference/`</A>,
or <A HREF="http://msdn.microsoft.com/en-us/library/1fe2x6kt(VS.100).aspx">`http://msdn.microsoft.com/en-us/library/1fe2x6kt(VS.100).aspx`</A>. or <A HREF="https://msdn.microsoft.com/en-us/library/1fe2x6kt(v=vs.140).aspx">`https://msdn.microsoft.com/en-us/library/1fe2x6kt(v=vs.140).aspx`</A>.
The \stl comes with the compiler, so there is nothing to install. The \stl comes with the compiler, so there is nothing to install.

View File

@ -78,7 +78,8 @@ body {color: black; background-color: #C0C0D0; font-family: sans-serif;}
</style> </style>
</head><body> </head><body>
<h1 id="maintitle">Doxygen Manual Results</h1>''' <h1 id="maintitle">Doxygen Manual Results</h1>'''
page_footer='''<table class="test-results"> page_footer='''<table border="1" cellspacing="2" cellpadding="5" class="test-results">
<tr><td/><th colspan="3">Doxygen 1.8.4</th><th colspan="3">Doxygen 1.8.13(official)</th><th colspan="3">Doxygen master</th></tr>
<tr> <tr>
<th>Package Name</th> <th>Package Name</th>
<th>Logs </th> <th>Logs </th>
@ -101,7 +102,7 @@ body {color: black; background-color: #C0C0D0; font-family: sans-serif;}
suffix = '' suffix = ''
if args.doxygen_version2: if args.doxygen_version2:
suffix = args.doxygen_version2 suffix = args.doxygen_version2
link2="\n<br><a href=\"output2/Manual/index.html\">Documentation built</a> with <a href=\"https://github.com/CGAL/doxygen\">our fork of Doxygen {_suffix}</a>\n".format(_suffix=suffix) link2="\n<br><a href=\"output2/Manual/index.html\">Documentation built</a> with <a href=\"https://github.com/CGAL/doxygen\">our fork of Doxygen {_suffix} (used for the official CGAL documentation)</a>\n".format(_suffix=suffix)
suffix = '' suffix = ''
if args.master_describe: if args.master_describe:
suffix=args.master_describe suffix=args.master_describe

View File

@ -890,7 +890,9 @@ foreach (dir ${CGAL_CONFIGURED_PACKAGES})
install(DIRECTORY ${dir}/include/CGAL DESTINATION ${CGAL_INSTALL_INC_DIR} PATTERN ".svn" EXCLUDE) install(DIRECTORY ${dir}/include/CGAL DESTINATION ${CGAL_INSTALL_INC_DIR} PATTERN ".svn" EXCLUDE)
endif() endif()
endforeach() endforeach()
install(DIRECTORY ${CMAKE_BINARY_DIR}/include/CGAL DESTINATION ${CGAL_INSTALL_INC_DIR} PATTERN ".svn" EXCLUDE) if(EXISTS ${CMAKE_BINARY_DIR}/include/CGAL)
install(DIRECTORY ${CMAKE_BINARY_DIR}/include/CGAL DESTINATION ${CGAL_INSTALL_INC_DIR} PATTERN ".svn" EXCLUDE)
endif()
file(GLOB scripts "scripts/*") file(GLOB scripts "scripts/*")
list(SORT scripts) list(SORT scripts)
@ -1122,13 +1124,13 @@ because IPE_FOUND is false.")
endif() endif()
if(CGAL_ENABLE_CHECK_HEADERS) if(CGAL_ENABLE_CHECK_HEADERS)
set(falg "-fsyntax-only") set(flag "-fsyntax-only")
else() else()
set(falg "-E") set(flag "-E")
endif() endif()
if(NOT DEFINED CGAL_CHECK_SYNTAX_ONLY) if(NOT DEFINED CGAL_CHECK_SYNTAX_ONLY)
execute_process(COMMAND execute_process(COMMAND
${CMAKE_CXX_COMPILER} -x c++ ${falg} ${CGAL_MODULES_DIR}/config/support/test_syntaxonly.cpp ${CMAKE_CXX_COMPILER} -x c++ ${flag} ${CGAL_MODULES_DIR}/config/support/test_syntaxonly.cpp
ERROR_QUIET ERROR_QUIET
RESULT_VARIABLE ok) RESULT_VARIABLE ok)
if(ok EQUAL 0) if(ok EQUAL 0)
@ -1139,7 +1141,7 @@ because IPE_FOUND is false.")
endif(NOT DEFINED CGAL_CHECK_SYNTAX_ONLY) endif(NOT DEFINED CGAL_CHECK_SYNTAX_ONLY)
if(NOT CGAL_CHECK_SYNTAX_ONLY) if(NOT CGAL_CHECK_SYNTAX_ONLY)
message(FATAL_ERROR "Your compiler does not seem to support ${falg}. message(FATAL_ERROR "Your compiler does not seem to support ${flag}.
You must disable CGAL_ENABLE_CHECK_HEADERS.") You must disable CGAL_ENABLE_CHECK_HEADERS.")
endif() endif()
@ -1277,7 +1279,16 @@ LEDA_FOUND is false.")
separate_arguments(CMD separate_arguments(CMD
UNIX_COMMAND UNIX_COMMAND
"${CMAKE_CXX_COMPILER} ${compile_options_str} "${CMAKE_CXX_COMPILER} ${compile_options_str}
${include_options_str} -x c++ ${falg} -H \ ${include_options_str} -x c++ ${flag} -H \
${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/${header}"
# The header Algebraic_kernel_rs_gmpz_d_1.h is skipped on purpose: it
# depends on RS.
)
# CMD2 is CMD without the -H option
separate_arguments(CMD2
UNIX_COMMAND
"${CMAKE_CXX_COMPILER} ${compile_options_str}
${include_options_str} -x c++ ${flag} \
${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/${header}" ${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/${header}"
# The header Algebraic_kernel_rs_gmpz_d_1.h is skipped on purpose: it # The header Algebraic_kernel_rs_gmpz_d_1.h is skipped on purpose: it
# depends on RS. # depends on RS.
@ -1288,6 +1299,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/${header}"
COMMAND ${CMAKE_COMMAND} COMMAND ${CMAKE_COMMAND}
-DCERR:STRING=${chk_header_name} -DCERR:STRING=${chk_header_name}
"-DCMD:STRING=${CMD}" "-DCMD:STRING=${CMD}"
"-DCMD2:STRING=${CMD2}"
-P "${CGAL_MODULES_DIR}/run_cmd_redirection_cerr.cmake" -P "${CGAL_MODULES_DIR}/run_cmd_redirection_cerr.cmake"
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/${header} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/${header}
DEPENDS ${CGAL_MODULES_DIR}/run_cmd_redirection_cerr.cmake DEPENDS ${CGAL_MODULES_DIR}/run_cmd_redirection_cerr.cmake

View File

@ -15,15 +15,24 @@ if(NOT CERR)
"The variable `CERR` should be defined to the output error file!") "The variable `CERR` should be defined to the output error file!")
endif() endif()
# Create the file before using it
file(WRITE ${CERR})
# Execute the command ${CMD} with stderr redirected to the file ${CERR}
execute_process( execute_process(
COMMAND ${CMD} COMMAND ${CMD}
ERROR_VARIABLE err ERROR_FILE "${CERR}"
OUTPUT_VARIABLE output OUTPUT_VARIABLE output
RESULT_VARIABLE error_result) RESULT_VARIABLE error_result)
file(WRITE ${CERR} "${err}")
if(error_result) if(error_result)
if(CMD2)
file(REMOVE ${CERR})
execute_process(COMMAND ${CMD2})
message(SEND_ERROR)
else()
file(READ ${CERR} err)
file(REMOVE ${CERR})
string(REPLACE ";" " " CMD_STR "${CMD}") string(REPLACE ";" " " CMD_STR "${CMD}")
message(SEND_ERROR message(SEND_ERROR
"The command "The command
@ -34,4 +43,5 @@ ${output}
and the following error output: and the following error output:
${err}" ${err}"
) )
endif()
endif() endif()

View File

@ -29,7 +29,7 @@ do
done done
cmake -DCGAL_HEADER_ONLY=FALSE -DCGAL_ENABLE_CHECK_HEADERS=TRUE -DDOXYGEN_EXECUTABLE="$DOX_PATH" -DCGAL_COPY_DEPENDENCIES=TRUE -DCMAKE_CXX_FLAGS="-std=c++11" .. cmake -DCGAL_HEADER_ONLY=FALSE -DCGAL_ENABLE_CHECK_HEADERS=TRUE -DDOXYGEN_EXECUTABLE="$DOX_PATH" -DCGAL_COPY_DEPENDENCIES=TRUE -DCMAKE_CXX_FLAGS="-std=c++11" ..
make -j$(nproc --all) packages_dependencies make -j$(nproc --all) -k packages_dependencies
echo " Checks finished" echo " Checks finished"
for pkg_path in $CGAL_ROOT/* for pkg_path in $CGAL_ROOT/*
do do