summaryrefslogtreecommitdiffstats
path: root/Modules/Platform/CYGWIN.cmake
Commit message (Collapse)AuthorAgeFilesLines
* Convert CMake-language commands to lower caseKitware Robot2012-08-131-13/+13
| | | | | | | | | | | | | | | | | Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code: cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Cygwin: Do not define 'WIN32' (#10122)Brad King2010-12-171-1/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One of Cygwin's goals is to build projects using the POSIX API with no Windows awareness. Many CMake-built projects have been written to test for UNIX and WIN32 but not CYGWIN. The preferred behavior under Cygwin in such projects is to take the UNIX path but not the WIN32 path. Unfortunately this change is BACKWARDS INCOMPATIBLE for Cygwin-aware CMake projects! Some projects that previously built under Cygwin and are Cygwin-aware when they test for WIN32 may now behave differently. Eventually these projects will need to be updated, but to help users build them in the meantime we print a warning about the change in behavior. Furthermore, one may set CMAKE_LEGACY_CYGWIN_WIN32 to request old behavior during the transition. Normally we avoid backwards incompatible changes, but we make an exception in this case for a few reasons: (1) This behavior is preferred by Cygwin's design goals. (2) A warning provides a clear path forward for everyone who may see incompatible behavior, and CMAKE_LEGACY_CYGWIN_WIN32 provides a compatibility option. The warning and compatibility option both disappear when the minimum required version of CMake in a project is sufficiently new, so this issue will simply go away over time as projects are updated to account for the change. (3) The fixes required to update projects are fairly insignificant. Furthermore, the Cygwin distribution has no releases itself so project versions that predate said fixes tend to be difficult to build anyway. (4) This change enables many CMake-built projects that did not previously build under Cygwin to work out-of-the-box. From bug #10122: "I have built over 120 different source packages with (my patched) CMake, including most of KDE4, and have found that NOT defining WIN32 on Cygwin is much more accurate." -- Yaakov Selkowitz A fully compatible change would require patches on top of these project releases for Cygwin even though they otherwise need not be aware of it. (5) Yaakov has been maintaining a fork of CMake with this change for the Cygwin Ports distribution. It works well in practice. By accepting the change in upstream CMake we avoid confusion between the versions. CMake itself builds without WIN32 defined on Cygwin. Simply disable CMAKE_LEGACY_CYGWIN_WIN32 explicitly in our own CMakeLists.txt file.
* Cygwin: Use 'cyg' prefix for module DLLs (#10122)Yaakov Selkowitz2010-12-131-1/+1
| | | | Cygwin now uses the prefix 'cyg' for plugin DLLs instead of 'lib'.
* Do not find cyg*.dll on CygwinBrad King2010-01-131-2/+2
| | | | | | | | | | | | | | 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.
* Split GNU compiler information filesBrad King2009-12-021-35/+0
| | | | | | | | | | | | | | 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.
* ENH: Auto-import symbols for cygwin executablesBrad King2009-05-271-0/+1
| | | | | | This enables the --enable-auto-import linker flag on Cygwin when linking executables. It works with the old gcc 3.x compiler and is necessary for the new gcc 4.x compiler. See issue #9071.
* ENH: UNIX, CYGWIN, WIN32, APPLE, QNXNTO and BEOS are not longer set inAlexander Neundorf2007-08-091-0/+3
| | | | | | | | | | | | | | cmMakefile.cxx, but now in the platform files and are now valid for the target platform, not the host platform. New variables CMAKE_HOST_WIN32, CMAKE_HOST_UNIX, CMAKE_HOST_APPLE and CMAKE_HOST_CYGWIN have been added in cmMakefile.cxx (...and have now to be used in all cmake files which are executed before CMakeSystemSpecificInformation.cmake is loaded). For compatibility the old set is set to the new one in CMakeDetermineSystem.cmake and reset before the system platform files are loaded, so custom language or compiler modules which use these should still work. Alex
* ENH: Added support for import libraries created by executable and module ↵Brad King2007-03-191-2/+2
| | | | targets. The module import libraries should never be used but some windows compilers always create them for .dll files since there is no distinction from shared libraries on that platform. The executable import libraries may be used to create modules that when loaded bind to symbols from the executables. This is an enhancement related to bug#4210 though not requested by it explicitly.
* ENH: Adding image version number (major.minor) property to windows binaries. ↵Brad King2006-10-161-4/+12
| | | | Default is 0.0, but the VERSION target property may change the value. Windows now has first-class support for dll and exe versioning. This addresses bug#1219.
* ENH: Adding version number to the name of a DLL built in cygwin but not the ↵Brad King2006-10-051-0/+3
| | | | import library. This addresses bug#3571.
* ENH: Enabling link-type selection flags on Cygwin, MSYS, and MinGW. This ↵Brad King2006-10-051-0/+10
| | | | addresses bug#1644 on these platforms.
* ENH: add the flag for creating windows gui'sBill Hoffman2006-05-061-1/+1
|
* ENH: add support for language flags at rule expansion timeBill Hoffman2006-03-061-4/+4
|
* ENH: check in new find stuffBill Hoffman2006-03-021-0/+1
|
* BUG: Fixed cygwin module creation rules. Modules should not have the "cyg" ↵Brad King2006-02-191-4/+10
| | | | prefix by default. Removd soname flags from creation rules because they are never used on this platform.
* ENH: Generate import libraries for DLLs on Cygwin and MinGW.Brad King2006-02-181-1/+13
|
* ENH: Added platform settings CMAKE_FIND_LIBRARY_PREFIXES and ↵Brad King2006-02-091-0/+3
| | | | CMAKE_FIND_LIBRARY_SUFFIXES to allow customized searching for libraries.
* ENH: add exe stuff for cygwinBill Hoffman2006-01-031-0/+1
|
* ENH: more uniform approach to enable language, one step closer to being able ↵Bill Hoffman2004-08-261-1/+0
| | | | to enable a language without modifing cmake source code
* use export all symbols on cygwinBill Hoffman2003-01-211-1/+1
|
* determine CMAKE_MAKE_PROGRAM in EnableLanguageBill Hoffman2002-12-031-1/+0
|
* remove debug stuffBill Hoffman2002-11-211-1/+0
|
* fix for create shared libraryBill Hoffman2002-11-211-0/+1
|
* Set CMAKE_BUILD_TOOLBill Hoffman2002-11-121-2/+0
|
* Complete rework of makefile generators expect troubleBill Hoffman2002-11-081-0/+11