- With the addition of that new function Random::Random(char*), the ABI
changes, but in a compatible way -> bump the minor version of
SOVERSION. The SONAME remains unchanged.
- Add tests for `Random` with and without `CGAL_TEST_SUITE`. That will
make a difference only with header-only, because at the time the tests
are compiled, libCGAL is already compiled.
This allows installing the architecture-independent data outside the
prefix. This is particularly necessary on systems using a
multi-architecture layout where architecture-dependent files live in
/usr/${host_triple}/ and architecture-independent files in /usr/share.
If CGAL_FULL_VERSION is not set in the cache, in the sub-directory src/ its value is empty. That creates wrong library names, on Windows, such as:
libCGAL_ImageIO-vc120-mt-.lib
This variable is more sensible to be used in documentation. The
corresponding set in non branch-build does not require a PARENT_SCOPE,
because it has no parent in the release layout.
This call to add_config_flag has no effect. It is made before the
file(WRITE ${CMAKE_BINARY_DIR}/include/CGAL/compiler_config.h ...) which
overwrites the contents of the file.
This is surely a bug, because ${CGAL_EXT_LIB_${lib}_PREFIX} expands to
things like GMP or MPFR which would be really bad defines.
The code tried to prevent running the config tests to often by caching
their values and only rerunning them when the CMAKE_CXX_FLAGS change.
While this is smart it only buys us a few seconds and is not actually
correct. One of those bugs could be triggered through linker flags or
debug flags as well and just checking CMAKE_CXX_FLAGS is far from
enough. To be on the safe side we accept the extra
configuration-time (which is usually also minimized by using compiler
caches).
This also removes a warning caused by CMake policy CMP0054.
CMAKE_CXX_COMPILER_ID can expand to the string MSVC, which is also a
variable name which has been expanded by before CMP0054 has been
introduced.
This would lead to a bug *if* we would MATCHES against the string "MSVC",
but only triggers a warning.
Also quote some implicit string in a MATCHES for style reasons.
Add a CGALExports.cmake file
Conflicts:
GraphicsView/src/CGAL_Qt5/CMakeLists.txt
Installation/cmake/modules/CGALConfig_binary.cmake.in
Installation/cmake/modules/CGALConfig_install.cmake.in
There was also a conceptual conflict in:
Installation/src/CMakeLists.txt
If CMAKE_BUILD_TYPE is not set in the initial run, is only
defined *after* this code is run. Since the build type is cached this
seemed to work when a cmake cache was already present, but not without.
Add an export-name to libraries created with collect_cgal_library and
use it in install(EXPORT). Fake the behavior of export(EXPORT) by
looking for created targets manually.
While it might seem cleaner to simply add the -g0 argument, removing -g
is safer: -g0 would need to be added after any possible -g flags. Since
CMake makes no guarantees how the COMPILE_OPTIONS of a target are
actually initialized and we cannot change them on an individual basis
this is not easy to achieve. Hence we strip the CXX_FLAGS of -g. This
also still allows specifying it manually through CGAL_CXX_FLAGS.
Taucs, Lapack and Blas supports are no longer tested
Approved by the Release Manager
Tested in CGAL-4.5-Ic-97
Conflicts:
Polyhedron/demo/Polyhedron/CMakeLists.txt
This is a followup-up to the following commit:
| commit 16d42c0adf
| Author: Laurent Rineau <laurent.rineau@cgal.org>
| Date: Tue Aug 20 15:47:00 2013 +0200
|
| Hide the variables CGAL_*_PACKAGE_DIR
|
| Those three variables are for internal use only, and should not be exposed
| to the users in the cmake cache:
| CGAL_INSTALLATION_PACKAGE_DIR
| CGAL_MAINTENANCE_PACKAGE_DIR
| CGAL_CORE_PACKAGE_DIR
Those variables are declared twice, in two 'if()'-branches. I forgot to
modify one copy of them.
== Setting paths ==
-- Build CGAL from release in directory CGAL-4.3-beta1
CMake Warning (dev) at CMakeLists.txt:99 (set):
Cannot set "CGAL_CONFIGURED_PACKAGES_NAMES": current scope has no parent.
This warning is for project developers. Use -Wno-dev to suppress it.
The reason is that in the release there is not parent directory. As that
cmake instruction is need only if the Doxygen documentation is there, I
have surrounded the corresponding line of code by:
if(IS_DIRECTORY "${CMAKE_SOURCE_DIR}/Documentation")
endif()
Those three variables are for internal use only, and should not be exposed
to the users in the cmake cache:
CGAL_INSTALLATION_PACKAGE_DIR
CGAL_MAINTENANCE_PACKAGE_DIR
CGAL_CORE_PACKAGE_DIR
/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.
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.
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.
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.
There was an explicit
unset(WITH_CGAL_Core)
in the CMake scripts of CGAL. It was introduced to workaround an issue in
our testsuite process. I turned it into an EXCLUDE WITH_CGAL_Core in the
command load_cache that is used by our testsuite process.
| ------------------------------------------------------------------------
| r67597 | lrineau | 2012-02-03 18:13:17 +0100 (Fri, 03 Feb 2012) | 1 line
|
| Do not install scripts/cgal_create_assertions.sh scripts/cgal_create_cmake_script_with_options
| ------------------------------------------------------------------------
Use full-path for scripts.
- Factorize the logic of Installation/examples/CMakeLists.txt and
Installation/demo/CMakeLists.txt in to a function defined in
Installation/CMakeLists.txt
- Call cgal_create_cmake_script, potentially out-of-build, when the
CMakeLists.txt does not exist.
At the first run of CMake, CGAL_INSTALLATION_PACKAGE_DIR is not known when
Subversion_GET_REVISION and Subversion_GET_URL are called. That gives an
svn error, that is fixed at the second run of CMake. Use CMAKE_SOURCE_DIR
and CMAKE_CURRENT_SOURCE_DIR instead.
... into a new function Subversion_GET_INFO. The function
Subversion_GET_REVISION is also moved to <branch_root>/CMakeLists.txt
instead of <branch_root>/Installation/CMakeLists.txt, because that function
is used only in the case of a branch-build anyway.
The function build_cgal_library defined in
Installation/src/CMakeLists.txt now handles a lot more than before, to
factorize between the various */src/*/CMakeLists.txt files used to
build CGAL libraries.
For example, the definition of mangled names is now factorized in that
function.
Installation/src/CMakeLists.txt also sets the output directories for
runtime, shared libraries, and static libraries. DLLs will be created
in bin/ instead of lib/.
We declare
cmake_minimum_required(VERSION 2.6.2)
but we also use
cmake_policy(VERSION 2.8.4)
to declare that our CMake scripts are OK with all the defaults of CMake policies
as of CMake-2.8.4. That shuts down the warnings of CMake-2.8.4.
That way, we no longer need any declaration of specific policies.
- clean up CGALConfig files (gmp/mpfr version)
- special role of LEDA
- gmp/mpfr need version
- removed SetupGMP ;-)
- clean up Dependencies
- NTL without USE_FILE
- added mandatory libs
Patch to trunk/Installation/ to display the full version message of the
compiler, if RUNNING_CGAL_AUTO_TEST is set (in the testsuite). That will
help to know which compiler are run by tests platforms.
Display also the result of `uname -a`
variable CGAL_INSTALL_MAN_DIR is set to an empty string.
- CGAL_INSTALL_DOC_DIR can also be set to an empty string.
- Fix a typo in the unused CPack section
| ------------------------------------------------------------------------
| r57847 | lrineau | 2010-08-06 14:11:31 +0200 (Fri, 06 Aug 2010) | 4 lines
|
| Turn cgal_setup_module_path into a CMake function.
| Fix the CMake errors with CMake-2.6.0 and CMake-2.6.1 (VERSION_LESS if IF
| has been introduced in CMake-2.6.2).
| ------------------------------------------------------------------------
| r57816 | lrineau | 2010-08-05 15:56:57 +0200 (Thu, 05 Aug 2010) | 17 lines
|
| Clean the CMake configuration:
|
| - CGALConfig_install.cmake.source.in is removed. The variable
| SOURCE_INSTALL/CGAL_SOURCE_INSTALL were unused, and probably not tested
| for a long time (I found errors in
| CGALConfig_install.cmake.source.in). This has been cleaned.
|
| - CGALConfig_install.cmake.fhs.in is renamed (no .fhs. in it).
|
| - The module path is now modified in a macro (defined in
| CGAL_Macros.cmake), and the variable CGAL_CMAKE_MODULE_PATH is no
| longer stored or used in CGALConfig.cmake (the reason is that is was
| used as a path, where it is actually a list of paths).
|
| - The UseCGAL.cmake file only link with CGAL libraries that has been
| configured.
|
| ------------------------------------------------------------------------
of CGAL_Core on 64 bits platforms, the old libCGAL_Core.so from the
reference platforms were somehow used and linked with binaries.
This is an attempt to work around that issue.
with the PERMISSIONS statement.
== Reason: that mail ==
Message-ID: <4A2D1852.5050308@itis.ethz.ch>
Date: Mon, 08 Jun 2009 15:55:30 +0200
From: Dominik Szczerba <dominik@itis.ethz.ch>
To: cgal-discuss@lists-sop.inria.fr
Subject: [cgal-discuss] small installation issue on linux (CGAL v3.4)
Reply-To: cgal-discuss@lists-sop.inria.fr
Hi,
While 'make install' a following error is issued:
CMake Error at cmake_install.cmake:55 (FILE):
file Problem setting permissions on directory "/usr/local/bin"
The properties of this folder are:
drwxrwxr-x 2 root staff 4096 2009-06-08 15:46 bin
which is certainly sufficient for any local install by a staff member.
By temporarilly changing the ownership of the folder to myself the
installation proceeds, but it changes the permissions to 'drwxr-xr-x',
which is not how it should be done. Is there a particular reason to do
it this way or is it simply overlooking?
with regards,
Dominik
--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://lists-sop.inria.fr/wws/info/cgal-discuss
${CMAKE_INSTALL_PREFIX}/lib/CGAL-3.4 (but on Windows)
- The generated CGALConfig.cmake (from CGALConfig_install.fhs.cmake has
been modified so that it no longer refers to the source directory.