That header needs C++11 at least, and that does not play well with the
`check_headers` feature. So put it in the whitelist, so that it is not
tested along with the other headers.
Because of bug in gcc, even if the C++11 `thread_local` keyword can be
used, it cannot be used for the TLS static member of the class template
`MemoryPool<T>`. That triggers a bug in gcc (tested with g++ 6.3.1):
```
.../include/CGAL/CORE/MemoryPool.h:113:25: error: redefinition of 'bool __tls_guard'
MemoryPool<T, nObjects> MemoryPool<T, nObjects>::memPool;
^~~~~~~~~~~~~~~~~~~~~~~
.../include/CGAL/CORE/MemoryPool.h:113:25: note: 'bool __tls_guard' previously declared here
.../include/CGAL/CORE/MemoryPool.h:113: confused by earlier errors, bailing out
Preprocessed source stored into /tmp/cc4xCWuR.out file, please attach this to your bugreport.
```
The bug seems to be from g++ >= 5:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54948
When the list `CMAKE_CXX_COMPILE_FEATURES` is empty, there was a syntax
error.
```
CMake Error at /mnt/testsuite/cmake/modules/CGAL_CreateSingleSourceCGALProgram.cmake:27 (list):
list sub-command REMOVE_ITEM requires two or more arguments.
Call Stack (most recent call first):
CMakeLists.txt:75 (create_single_source_cgal_program)
```
New directory property named `CGAL_NO_TESTING`. If set to `TRUE`, then
the automatic generating of CTest test will be disabled.
(cherry picked from commit 5d540fc1989c86438090b0212883b15cd121cf92)
The macro `create_single_source_cgal_program` from
`CGAL_CreateSingleSourceCGALProgram` has been modified accordingly.
(cherry picked from commit 571659aaa32a30d7bfc0ce54a9d29c56079dca06)
Save the current source directory to `CGAL_CURRENT_SOURCE_DIR`. The
variable value is modified by a `CMakeLists.txt` file when it is
generated by `cgal_create_cmake_script` in the binary tree. The script
`cgal_create_cmake_script` itself it called by CMake, by the function
`process_CGAL_subdirectory` (see its definition in
`Installation/cmake/modules/CGAL_Macros.cmake`), called in
`(examples|test|demo)/CMakeLists.txt`.
Eventually, that variable value is supposed to be the directory to the
current sources, even if the current `CMakeLists.txt` is within the
binary tree.
That is used in `CGAL_CreateSingleSourceCGALProgram.cmake` for the CTest
support, so set correctly the current working directory (in the
directory of the tests/examples).