1. 06 Aug, 2010 1 commit
  2. 11 Mar, 2010 1 commit
  3. 19 Feb, 2010 1 commit
    • Brad King's avatar
      Suppress GNU flag -fPIC on Windows · 4eba05de
      Brad King authored
      Commit "Modernize GNU compiler info on Windows" (2009-12-02) reorganized
      GNU flags on Windows but let -fPIC slip through for compilation of
      objects in shared libraries.  While this flag is valid on most GNU
      compiler platforms we need to suppress it in Windows-GNU.cmake just as
      we already do in CYGWIN-GNU.cmake.
      4eba05de
  4. 29 Jan, 2010 1 commit
    • David Cole's avatar
      Fix issue #10155 - default value of CMAKE_OSX_DEPLOYMENT_TARGET should always... · 6ee87b2e
      David Cole authored
      Fix issue #10155 - default value of CMAKE_OSX_DEPLOYMENT_TARGET should always be the empty string. When the value of CMAKE_OSX_DEPLOYMENT_TARGET is the empty string, the -mmacosx-version-min flag should not show up on the compiler command line. The logic for selecting default value of CMAKE_OSX_SYSROOT is orthogonal to and independent of the value of the deployment target. The default value for CMAKE_OSX_SYSROOT is the SDK that corresponds to the current version of Mac OSX on which cmake is running.
      6ee87b2e
  5. 21 Jan, 2010 3 commits
    • Brad King's avatar
      Do not export all symbols from DLLs on Cygwin · 3684f623
      Brad King authored
      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.
      3684f623
    • Brad King's avatar
      Fix CMAKE_DL_LIBS on Cygwin · 41024b00
      Brad King authored
      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.
      41024b00
    • Brad King's avatar
      Add PathScale shared library flags on Linux · 1804c6bf
      Brad King authored
      We add platform-specific compiler information files
      
        Platform/Linux-PathScale-<lang>.cmake
      
      to enable -fPIC and -shared flags for shared libraries.
      1804c6bf
  6. 13 Jan, 2010 4 commits
    • Brad King's avatar
      Do not find cyg*.dll on Cygwin · e46e8fb9
      Brad King authored
      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.
      e46e8fb9
    • Brad King's avatar
      Search prefix /usr before root prefix / · 12dcf9e4
      Brad King authored
      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.
      12dcf9e4
    • Brad King's avatar
      Restore -rdynamic in Linux build rules · 9ef3f8e8
      Brad King authored
      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.
      9ef3f8e8
    • Brad King's avatar
      Create Linux GNU compiler flag consolidation macro · 7b106a6f
      Brad King authored
      This macro will be used for GNU compiler flags that are specific to
      Linux but not to any language.
      7b106a6f
  7. 23 Dec, 2009 1 commit
    • David Cole's avatar
      Fix issue with SDK not matching initial deployment target chosen by setting... · 8d88de4b
      David Cole authored
      Fix issue with SDK not matching initial deployment target chosen by setting the MACOSX_DEPLOYMENT_TARGET environment variable. The problem was that we were setting the initial SDK value based on our own internal default value for deplyment target rather than the user's environment variable choice. The solution is to base the default value for the SDK on the deployment target variable after initially caching the deployment target... Every time I'm in this code I think I leave it cleaner, only to be proven otherwise. Let's give this one a whirl. Bleh.
      8d88de4b
  8. 15 Dec, 2009 1 commit
  9. 04 Dec, 2009 5 commits
    • Brad King's avatar
      Remove GNU-specific flags from Linux.cmake · af14f1f2
      Brad King authored
      We remove the shared library compile/link flags "-fPIC" and "-shared"
      because they are not provided by all compilers on Linux.  This allows us
      to drop code from the Linux-XL-*.cmake files that erases the bad flags.
      All other supported compilers already provide their correct flags for
      Linux in their own platform information files.
      af14f1f2
    • Brad King's avatar
      Generalize support for Portland Group Compiler · c106cb2e
      Brad King authored
      We factor flags from Platform/Linux-PGI-Fortran.cmake into language
      independent helper modules
      
        Compiler/PGI.cmake
        Platform/Linux-PGI.cmake
      
      and invoke the macros from
      
        Compiler/PGI-<lang>.cmake
        Platform/Linux-PGI-<lang>.cmake
      
      This enables general support for the PGI compilers.
      c106cb2e
    • Brad King's avatar
      Remove duplicate info from Linux SunPro info files · 2d948e94
      Brad King authored
      The CMAKE_DL_LIBS variable is set platform-wide by Linux.cmake so we do
      not need to duplicate it in Linux-SunPro-<lang>.cmake files.
      2d948e94
    • Brad King's avatar
      Consolidate Linux Intel compiler information · e2083979
      Brad King authored
      We consolidate duplicate code from Platform/Linux-Intel-<lang>.cmake
      files into a macro defined in Platform/Linux-Intel.cmake.
      e2083979
    • Brad King's avatar
      Fix GNU C and Fortran flags on SunOS · 77ded396
      Brad King authored
      The commit "Split GNU compiler information files" intended to move GNU
      flags from the platform-wide Platform/SunOS.cmake module into
      
        Platform/SunOS-GNU-<lang>.cmake
      
      using a helper module Platform/SunOS-GNU.cmake to consolidate flags.
      However, it accidentally put Fortran flags in the C language module and
      left out the Fortran module altogether.  This fixes those mistakes.
      77ded396
  10. 02 Dec, 2009 5 commits
    • Brad King's avatar
      Move GNU flags from SunOS.cmake to SunOS-GNU.cmake · 3e37ca8e
      Brad King authored
      The GNU-specific link-type flags do not belong in the platform-wide
      file.
      3e37ca8e
    • Brad King's avatar
      Reduce duplication in Platform/<os>.cmake files · 4d72006b
      Brad King authored
      Several platform-wide linker flag variables are defined in
      Modules/Platform/<os>.cmake files for C and then copied by the
      Modules/CMake<lang>Information.cmake file for each language.
      We now use this approach for the variables
      
        CMAKE_EXE_EXPORTS_${lang}_FLAG
        CMAKE_SHARED_LIBRARY_SONAME_${lang}_FLAG
        CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS
      
      to avoid duplication for multiple languages in each platform file.
      4d72006b
    • Brad King's avatar
      Fix OS X dylib and module GNU flags · 58d6057a
      Brad King authored
      The commit "Split GNU compiler information files" broke the settings of
      
        CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS
        CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS
      
      and started using just "-shared" for them.  This worked when tested on newer
      Mac machines, but older ones really need "-dynamiclib" and "-bundle" (which are
      the documented flags anyway).
      58d6057a
    • Brad King's avatar
      Modernize GNU compiler info on Windows · aff31479
      Brad King authored
      This moves GNU compiler info on Windows into new-style modules
      
        Platform/Windows-GNU-<lang>.cmake
      
      using language-independent helper module
      
        Platform/Windows-GNU.cmake
      
      to define macros consolidating the information.
      aff31479
    • Brad King's avatar
      Split GNU compiler information files · e28c16b4
      Brad King authored
      This moves GNU compiler flags into new-style modules
      
        Compiler/GNU-<lang>.cmake
        Platform/<os>-GNU-<lang>.cmake
      
      We use language-independent helper modules
      
        Compiler/GNU.cmake
        Platform/<os>-GNU.cmake
      
      to define macros consolidating the information.
      e28c16b4
  11. 01 Dec, 2009 1 commit
    • Brad King's avatar
      Drop -rdynamic from Linux build rules · 1f06c33f
      Brad King authored
      This is a GNU-specific option that should not be specified for all
      compilers on Linux.  It tells the GNU compiler to pass -export-dynamic
      to the linker to export symbols from executables for use by plugins.
      Since we provide the ENABLE_EXPORTS target property to do the same thing
      in a cross-platform way, there is no need to pass -rdynamic always.
      
      Since the option is not useful for GNU tools and breaks other tools on
      Linux we simply remove it from CMAKE_SHARED_LIBRARY_LINK_<lang>_FLAGS.
      This also allows us to stop setting the variable in other Linux compiler
      files just to erase the bad flag.
      
      See issue #9985.
      1f06c33f
  12. 30 Nov, 2009 1 commit
    • Brad King's avatar
      Singly-quote target names for Watcom linker · 4f43c1f2
      Brad King authored
      The Watcom tools do their own command-line parsing and do not accept
      double-quotes.  Instead we single-quote the target output name when
      invoking wlink and other Watcom tools.  This fixes support for spaces in
      the target output directory path when it is not under the build tree.
      4f43c1f2
  13. 19 Nov, 2009 1 commit
  14. 29 Oct, 2009 1 commit
    • Brad King's avatar
      Fix flags for Intel Fortran on Windows · 537906b4
      Brad King authored
      We replace "/MD" with ifort-specific flags as follows:
      
        /MD  -> /threads /libs:dll
        /MDd -> /threads /libs:dll /dbglibs
      
      We also enable the "/MD" equivalent for all Fortran configurations.
      Previously multithreaded dll runtimes were used for release builds and
      threaded static runtimes for debug builds.  For mixed Fortran C/C++
      projects, this led to link warnings for Debug but not for Release.
      
      See issue #8744.
      537906b4
  15. 27 Oct, 2009 1 commit
  16. 26 Oct, 2009 1 commit
    • Brad King's avatar
      Fix Intel and MinGW Fortran DLL import libraries · 707d05e9
      Brad King authored
      We add Intel and MinGW Fortran linker options to create the import
      library portion of a DLL.  This allows other binaries to link to a
      Fortran DLL.
      
      We also update the Fortran test to use a .def file to specify exports
      since there is no __declspec(dllexport) markup syntax in Fortran.
      707d05e9
  17. 08 Oct, 2009 1 commit
    • Brad King's avatar
      Split Borland compiler information files · 0653286d
      Brad King authored
      This commit re-writes Borland compiler build rules.  We split the rules
      into modern <os>-<id>-<lang> information modules but share a common
      macro between languages to avoid duplication.
      
      We also address a bug in the previous rules that would build some target
      types against the static Borland runtime and others against the shared
      Borland runtime in one build tree.  Now we always use the shared runtime
      as is the default in the rules for MS tools.
      0653286d
  18. 05 Oct, 2009 6 commits
  19. 02 Oct, 2009 2 commits
  20. 30 Sep, 2009 2 commits
    • Brad King's avatar
      Split XL compiler information files · 6d434ee6
      Brad King authored
      This moves platform-independent XL compiler flags into separate
      "Compiler/XL-<lang>.cmake" modules.  Platform-specific flags go in
      "Platform/<os>-XL-<lang>.cmake" modules.
      6d434ee6
    • Brad King's avatar
      Fix default install prefix on Haiku · f40406ed
      Brad King authored
      Since Haiku does not have /usr (and therefore /usr/local), this commit
      changes the default install prefix to the equivalent directory of
      /boot/common.
      
      See issue #9607.
      f40406ed