Commit Graph

14069 Commits

Author SHA1 Message Date
Dave Partyka f74eb63967 COMP: remove exporting String as VS10 attempts to export its parents (basic_string) which causes all kinds of multiply defined symbols at link time. 2010-01-26 17:19:23 -05:00
KWSys Robot 42d76e8b82 KWSys Nightly Date Stamp 2010-01-25 23:50:10 -05:00
Brad King 2b3eee4646 Avoid PathScale cmd-line bug in TryCompile test
The PathScale compiler silently accepts unknown options that start in
more than one '-':

  $ touch foo.c
  $ pathcc -c foo.c --junk
  $ echo $?
  0
  $ pathcc -c foo.c ---junk
  $ echo $?
  0
  $ pathcc -c foo.c -junk
  pathcc ERROR parsing -junk: unknown flag
  $ echo $?
  2

We teach the TryCompile to pass a bogus flag with only one '-' instead
of three '-'s for this compiler.
2010-01-25 08:47:32 -05:00
Brad King 4d1351e8d3 Skip Fortran module mangling test on PathScale
We disable this test because PathScale Fortran mangles module symbols as
"MYSUB.in.MYMODULE" so we cannot interface with it from C.  We already
did this for SunPro and MIPSpro.
2010-01-25 08:27:34 -05:00
KWSys Robot 9348f626f9 KWSys Nightly Date Stamp 2010-01-24 23:50:16 -05:00
Alexander Neundorf 5f540dcbf3 -make paths with spaces work in the CodeBlocks generator with MinGW (#10014)
Alex
2010-01-24 15:11:58 -05:00
KWSys Robot 0999bd7fb8 KWSys Nightly Date Stamp 2010-01-23 23:50:22 -05:00
KWSys Robot 6e54834215 KWSys Nightly Date Stamp 2010-01-22 23:50:28 -05:00
Brad King 21faaa5d7f FortranCInterface: Fix PathScale detection
PathScale Fortran mangles module symbols as "MYSUB.in.MYMODULE" and also
requires "mymodule_" when the module is imported.  We cannot provide the
symbol with ".in." mangling so we should not provide "mymodule_" because
it would duplicate the one in the Fortran-provided object file.
2010-01-22 14:15:47 -05:00
Alexander Neundorf 3551869e92 -also put CMAKE_LINKER in the C and CXX compiler information files
This is already done for assembler and is necessary for e.g. Symbian.

Alex
2010-01-22 12:41:55 -05:00
KWSys Robot 634011f7fa KWSys Nightly Date Stamp 2010-01-21 23:50:33 -05:00
Brad King 3684f62340 Do not export all symbols from DLLs on Cygwin
In commit "use export all symbols on cygwin" (2003-01-21) we started
passing -Wl,--export-all-symbols when linking shared libraries.  Now
cygwin exports all symbols automatically if no symbols are explicitly
exported.  When symbols are explicitly exported we want to honor that
narrow interface.  Therefore this flag should not be passed.

Change based on patch from issue #10122.
2010-01-21 15:03:32 -05:00
Brad King 41024b006b Fix CMAKE_DL_LIBS on Cygwin
The variable should contain the name of a library needed to link the
symbol equivalent to dlopen.  On Cygwin no special library is needed,
and certainly not "gdi32".

Change based on patch from issue #10122.
2010-01-21 15:03:17 -05:00
Brad King 1804c6bfe2 Add PathScale shared library flags on Linux
We add platform-specific compiler information files

  Platform/Linux-PathScale-<lang>.cmake

to enable -fPIC and -shared flags for shared libraries.
2010-01-21 09:09:27 -05:00
KWSys Robot 8c7b3a21cc KWSys Nightly Date Stamp 2010-01-20 23:50:38 -05:00
KWSys Robot 02dd3a8897 KWSys Nightly Date Stamp 2010-01-19 23:50:47 -05:00
KWSys Robot d23d3fd6dd KWSys Nightly Date Stamp 2010-01-18 23:50:52 -05:00
Alexander Neundorf 03769801ff -make the imported targets feature of FindQt4.cmake fully backwards compatible
After discussing with Brad and Clinton:
-the namespace for the imported targets is now "Qt4::", tested with Makefiles, Visual Studio and XCode projects
-the imported targets are always created
-if QT_USE_IMPORTED_TARGETS is set to TRUE (it defaults to FALSE), the QT_QTFOO_LIBRARY variables are set to point to these imported
targets, otherwise the old behaviour is used.
-on OSX if Qt has been found as framework, disable QT_USE_IMPORTED_TARGETS, since cmake doesn't handle the framework directory as location of the library correctly

Alex
2010-01-18 16:23:21 -05:00
Clinton Stimpson 835b07a3a8 Put quotes arounds strings when doing STREQUAL. 2010-01-18 15:49:46 -05:00
Alexander Neundorf 1833961ce5 some tweaks as suggested by Brad (no functional changes)
-set the type of the IMPORTED libraries to UNKNOWN, this way also on Windows
only the "LOCATION" property has to be set
-the if() around the SET(QT_${basename}_FOUND 1) was useless (always true)
-the mapping of the configuration types DEBUG and PROFILE did not belong here

Alex
2010-01-18 13:38:38 -05:00
KWSys Robot a17e32199f KWSys Nightly Date Stamp 2010-01-17 23:51:18 -05:00
Alexander Neundorf 6d39313001 -create imported library targets for the Qt4 libs
This commit syncs FindQt4.cmake again with KDEs version.
Now for every Qt library an imported target with the name
Qt4ImportedTarget__<LIBNAME> is created.
This way we can now finally handle the release and debug versions of the Qt
libraries correctly.
Also, if a Qt-using project A installs a file with exported targets, these
targets now depend on the imported Qt targets, e.g.
Qt4ImportedTarget__QtCore. The location of QtCore is then resolved at
buildtime of project B, which uses the exported targets from project A.
 Before this patch the full path to the QtCore on the original build machine
of project A was stored, so this had to match the directory layout on the
build machine for project B.

Alex
2010-01-17 11:37:53 -05:00
KWSys Robot b63b4ae1ea KWSys Nightly Date Stamp 2010-01-16 23:51:06 -05:00
KWSys Robot c04fb498af KWSys Nightly Date Stamp 2010-01-15 23:51:09 -05:00
KWSys Robot 776a8743e0 KWSys Nightly Date Stamp 2010-01-14 23:51:21 -05:00
KWSys Robot 7249e7d553 KWSys Nightly Date Stamp 2010-01-13 23:51:22 -05:00
Clinton Stimpson 55a3967eda Fix bug #10114. Find phonon on some installations. 2010-01-13 17:34:31 -05:00
Brad King e46e8fb937 Do not find cyg*.dll on Cygwin
While Cygwin supports linking directly to .dll files, the behavior is
now discouraged.  All Cygwin packages now provide import libraries of
the form lib*.dll.a and CMake has built the import libraries for years.

We believe it is now safe to stop explicitly searching for .dll files
because their import libraries will always be available when the
corresponding header files are available.  Users can always set
find_library cache entries to point at a .dll file by hand if they
really must use one.

Change based on patch from issue #10122.
2010-01-13 14:12:29 -05:00
Brad King 3cba2b3a0f Fix KDE3 .la file format on Cygwin
We teach KDE3Macros.cmake to generate .la files on Cygwin that match
those produced by libtool.  See issue #10122.
2010-01-13 13:54:34 -05:00
Brad King 8779559dd5 Remove unused #include <windows.h> 2010-01-13 13:49:08 -05:00
Brad King 12dcf9e4fb Search prefix /usr before root prefix /
Commit "Find locally installed software first" made /usr/local the first
prefix searched to be consistent with the Filesystem Hierarchy Standard:

  http://www.pathname.com/fhs/

The standard also implies that the root prefix "/" should not have any
package or development files.  The "/bin" and "/lib" directories should
have only minimal contents to boot the system.  No "/include" ever
exists.  This commit re-orders the search path prefix list from

  /usr/local
  /
  /usr

to

  /usr/local
  /usr
  /

to prefer package and development files over low-level system files.
See issue #10136.

On Cygwin /usr/lib == /lib and /usr/bin == /bin.  This change also makes
search results report locations as "/usr/..." instead of "/lib/...".
See issue #10122.
2010-01-13 13:36:03 -05:00
Brad King b05ed46749 Name Cygwin DLLs with SOVERSION, not VERSION
Cygwin versions .dll files by putting the version number in the file
name.  Our fix to issue #3571 taught CMake to do this, but it used the
VERSION target property.  It is better to use the SOVERSION property
since that is the interface (rather than implementation) version.

Change based on patch from issue #10122.
2010-01-13 13:00:29 -05:00
Brad King 879b47e6ba KWSys: Fix SharedForward on Cygwin without -mwin32
When building on Cygwin without -mwin32, the _WIN32 macro may not be
defined.  SharedForward must still set the PATH environment variable to
ensure runtime dependencies are found.

The 'ldd' wrapping feature uses 'cygcheck' for now since a real ldd tool
is not available in Cygwin 1.5.  We can change to use the real ldd when
we choose to stop supporting legacy Cygwin and require 1.7.
2010-01-13 12:58:34 -05:00
Brad King 5b5372059c Enable extra CodeBlocks generator on Cygwin
This generator builds correctly on Cygwin so it should be enabled.
Change based on patch from issue #10122.
2010-01-13 12:58:08 -05:00
Brad King fdbe16c1f4 Use if(CYGWIN) instead of if(WIN32 AND UNIX)
CMake has defined CYGWIN on Cygwin for years, so we no longer need the
legacy form of the test.  Change based on patch from issue #10122.
2010-01-13 12:57:38 -05:00
Brad King da36cde059 PathScale C/C++/Fortran Compiler Information
We add compiler information files

  Compiler/PathScale-<lang>.cmake

to specify PathScale compiler information for C, C++, and Fortran
languages.  We use a macro in Compiler/PathScale.cmake to consolidate
the information common to all languages.
2010-01-13 12:14:31 -05:00
Brad King 1e9f58e605 Recognize the PathScale C/C++/Fortran compilers 2010-01-13 12:12:39 -05:00
Brad King 9ef3f8e820 Restore -rdynamic in Linux build rules
The commit "Drop -rdynamic from Linux build rules" removed default use
of the flag on Linux.  It was expected to be compatible because any
project using plugins should set ENABLE_EXPORTS on its executables to
export their symbols for use by the plugins in a cross-platform way.
However, it is possible to build without ENABLE_EXPORTS and load plugins
that do not link to any symbols from the executable explicitly.  These
plugins may need to see RTTI and other executable symbols needed by the
language implementation.  Executables using such plugins were broken by
the change.

If we want to remove the -rdynamic flag in the future we should do so in
a compatible way.  At that time we should also remove equivalent flags
on other platforms (like -bexpall on AIX).  We will either need a policy
or an explicit API to disable symbol exports on executables.

The primary purpose of the above-mentioned commit was to avoid passing
the -rdynamic flag to compilers on Linux that do not support it.  In
this commit we restore the flag but only on GNU and Intel compilers
which are known to support it.

See issue #9985.
2010-01-13 08:13:46 -05:00
Brad King 7b106a6fb3 Create Linux GNU compiler flag consolidation macro
This macro will be used for GNU compiler flags that are specific to
Linux but not to any language.
2010-01-13 08:13:19 -05:00
KWSys Robot 113013fe11 KWSys Nightly Date Stamp 2010-01-12 23:51:32 -05:00
Brad King 8d0161c8ff Trust umask for file permissions
Open output files with mode 0666 so that permissions are not more strict
than umask permits.  See issue #10126.
2010-01-12 11:57:01 -05:00
Brad King 6c1e24276f Detect Fortran ABI Information
Implement Fortran 32/64-bit ABI detection on some platforms.  We need to
set CMAKE_SIZEOF_VOID_P correctly in Fortran-only projects so that the
find_library() command knows whether to look for 64-bit binaries.  We
also detect ELF binaries to enable RPATH replacement.  See issue #10119.
2010-01-12 09:38:13 -05:00
KWSys Robot b5100623f3 KWSys Nightly Date Stamp 2010-01-11 23:51:41 -05:00
KWSys Robot d7eca7093a KWSys Nightly Date Stamp 2010-01-10 23:51:49 -05:00
KWSys Robot d3ddeb808d KWSys Nightly Date Stamp 2010-01-09 23:51:47 -05:00
KWSys Robot 6ea1581dfe KWSys Nightly Date Stamp 2010-01-08 23:51:49 -05:00
Bill Hoffman 4cf560fb8b change the name to be closer to NMake Makefiles which is basically what jom parses 2010-01-08 13:31:37 -05:00
James Bigler 6faa4ae15e Changed warning string to use the WARNING flag. 2010-01-08 12:57:43 -05:00
James Bigler 2316e04d13 Reordered the arguments, so that user generated arguments go last and thus get precedence. 2010-01-08 12:14:21 -05:00
James Bigler d3034f9b56 Disable the --host-compilation flag for CUDA >= 3.0 since it is derecated. 2010-01-08 12:12:54 -05:00