Commit Graph

160 Commits

Author SHA1 Message Date
Brad King 7e5c571cce Move OrderedTargetDependSet into VS superclass
We move cmGlobalVisualStudio7Generator::OrderedTargetDependSet up to
cmGlobalVisualStudioGenerator so it can be re-used for other VS
versions.  See issue #9568.
2009-09-30 16:02:58 -04:00
Brad King 96afb12087 Convert CMake to OSI-approved BSD License
This converts the CMake license to a pure 3-clause OSI-approved BSD
License.  We drop the previous license clause requiring modified
versions to be plainly marked.  We also update the CMake copyright to
cover the full development time range.
2009-09-28 11:43:28 -04:00
Brad King e339f3133f ENH: Separate VS flag table type
Move the cmVS7FlagTable type out of the VS generators and rename it to
cmIDEFlagTable.  It will be useful for other generators.
2009-07-29 11:28:55 -04:00
Bill Hoffman 3d1c12b802 ENH: remove INCLUDE_EXTERNAL_MSPROJECT name hack, and use target properties instead, fix VXExternalInclude test for VS10 2009-07-14 14:16:46 -04:00
Bill Hoffman 5c4208f50e ENH: only 5 failing tests for VS 10 2009-07-10 09:12:39 -04:00
Brad King 0d83faf3e3 BUG: Fix ALL_BUILD ordering enforcement
The previous change to make ALL_BUILD come first among targets did not
account for comparing the target name against itself.  This led to an
invalid ordering of the target set.  This change fixes it.
2009-01-21 17:24:54 -05:00
Brad King 5b63e31041 ENH: Make ALL_BUILD always the default project
This teaches the VS IDE generators to write ALL_BUILD into solution
files first so that it is always the default active project.  Previously
it was first only if no target name sorted lexicographically earlier.
See issue #8172.
2009-01-21 17:06:57 -05:00
Brad King 00ca96ae7c BUG: Fix VS IDE project order
Our implementation of the feature to pull in dependent targets in VS
solution files for subprojects caused the order of project files in the
solution to be arbitrary (based on pointer value in the representation).
Target ordering in solution files is important to prevent unnecessary
changing of the files and because the VS IDE selects the first project
listed as the default active target.  This change restores lexicographic
order by target name.
2009-01-21 16:39:43 -05:00
Bill Hoffman ecf312ccc8 STYLE: fix line length stuff for KWStyle 2008-10-01 09:04:27 -04:00
Bill Hoffman d2e2ab72bf BUG: fix for 6794 support for LTCG WholeProgramOptimization, which is not available in VS 8 and newer. 2008-08-19 15:07:47 -04:00
Bill Hoffman 10c91ded4f ENH: add support for Intel Fortran Visual studio IDE 2008-04-30 13:26:04 -04:00
Bill Hoffman 852f6018bb ENH: make sure ALL_BUILD only shows up once 2008-02-04 16:05:00 -05:00
Bill Hoffman 22be36f8d5 ENH: make sure global targets are in the right projects 2008-01-30 16:22:51 -05:00
Bill Hoffman 8a83f09637 ENH: fix for bug 3218 dependant projects are written out automatically if they are in the project. Also fix bug 5829, remove hard coded CMAKE_CONFIGURATION_TYPES from vs 7 generator 2008-01-30 12:04:38 -05:00
Brad King 5594ad4885 ENH: Updated exporting and importing of targets to support libraries and configurations.
- Created cmExportFileGenerator hierarchy to implement export file generation
  - Installed exports use per-config import files loaded by a central one.
  - Include soname of shared libraries in import information
  - Renamed PREFIX to NAMESPACE in INSTALL(EXPORT) and EXPORT() commands
  - Move addition of CMAKE_INSTALL_PREFIX to destinations to install generators
  - Import files compute the installation prefix relative to their location when loaded
  - Add mapping of importer configurations to importee configurations
  - Rename IMPORT targets to IMPORTED targets to distinguish from windows import libraries
  - Scope IMPORTED targets within directories to isolate them
  - Place all properties created by import files in the IMPORTED namespace
  - Document INSTALL(EXPORT) and EXPORT() commands.
  - Document IMPORTED signature of add_executable and add_library
  - Enable finding of imported targets in cmComputeLinkDepends
2008-01-28 08:38:36 -05:00
Bill Hoffman a7e1031efe ENH: remove patch as directory change was already fixed 2008-01-15 14:00:52 -05:00
Brad King 9f864879b4 ENH: Renamed cmGlobalVisualStudioGenerator::CallVisualStudioReloadMacro method to CallVisualStudioMacro and added arguments to select which macro to call and optionally pass the solution file name. Added option to call to new StopBuild macro. Updated logic for replacing the macro file in user directories when the distributed version is newer. 2007-11-19 13:44:51 -05:00
Brad King bb1fa4c3f0 BUG: Fix exception handling flag translation to be specific to each VS version. This allows /EHa to be handled correctly for VS 2003. 2007-11-16 11:01:23 -05:00
David Cole 867de7fc67 ENH: Add ability to call Visual Studio macros from CMake. Add a CMake Visual Studio macro to reload a solution file automatically if CMake makes changes to .sln files or .vcproj files. Add code to call the macro automatically for any running Visual Studio instances with the .sln file open at the end of the Visual Studio Generate call. Only call the macro if some .sln or .vcproj file changed during Generate. Also, add handling for REG_EXPAND_SZ type to SystemTools::ReadRegistryValue - returned string has environment variable references expanded. 2007-11-16 07:01:58 -05:00
Ken Martin 6cdf032505 ENH: change to make the documentation class more generic, about halfway there, also provides secitons for Variables now 2007-10-22 12:49:09 -04:00
Alexander Neundorf 43de8c8628 ENH: add OPTIONAL keyword to ENABLE_LANGUAGE, so it will be possible to do
something like this:

ENABLE_LANGUAGE(ASM-ATT)
IF(CMAKE_ASM-ATT_COMPILER_WORKS)
  ... do assembler stufff
ELSE(CMAKE_ASM-ATT_COMPILER_WORKS)
  ... fallback to generic C/C++
ENDIF(CMAKE_ASM-ATT_COMPILER_WORKS)

Alex
2007-06-28 09:09:26 -04:00
Brad King ba7780a3c4 ENH: Fixed INSTALL_FILES and INSTALL_PROGRAMS commands to not create targets. No targets of type cmTarget::INSTALL_FILES or cmTarget::INSTALL_PROGRAMS are created, so we do not need to check for them everywhere anymore. 2007-05-23 15:40:12 -04:00
Alexander Neundorf b37cc6072f COMP: compile fix and remove warning
Alex
2007-05-22 10:42:37 -04:00
Alexander Neundorf 4878c00905 ENH: add the IMPORT keyword to ADD_EXECUTABLE(), which generates an
"imported" executable target. This can then be used e.g. with
ADD_CUSTOM_COMMAND() to generate stuff. It adds a second container for
"imported" targets, and FindTarget() now takes an additional argument bool
useImportedTargets to specify whether you also want to search in the
imported targets or only in the "normal" targets.

Alex
2007-05-22 10:24:59 -04:00
Alexander Neundorf 7f11536704 ENH: now target names can be used in add_custom_command() and
add_custom_target() as COMMAND, and cmake will recognize them and replace
them with the actual output path of these executables. Also the dependency
will be added automatically. Test included.
ENH: moved TraceVSDependencies() to the end of GlobalGenerator::Configure(),
so it is done now in one central place

Alex
2007-05-09 08:25:45 -04:00
Brad King 996f391593 BUG: The ALL_BUILD target should not have any command lines so that it is not always considered out of date. Moved the 'Build all projects' message into the description field instead of an echo in the command field. Moved common implementation of Generate for VS6 and VS7 into the superclass to avoid duplicate code for the ALL_BUILD target. This addresses bug#4556. 2007-04-10 13:09:03 -04:00
Ken Martin 8b0c61c322 ENH: added internal target property for the name of the project file 2007-04-10 09:54:01 -04:00
Brad King 438a7e2fce BUG: Fix utility dependencies for static libraries in VS generators. This addresses bug#4789. 2007-04-04 14:50:35 -04:00
Ken Martin c53b26baf2 ENH: some more cleanup 2007-03-13 15:18:27 -04:00
Brad King fb38af53c0 BUG: Split precompiled header flags into a separate per-global-generator flag map. This is needed because the flag mappings differ across VS IDE versions. This fixes bug#3512 for VS8 where as the previous fix only worked for VS7. 2007-03-12 12:35:11 -04:00
Ken Martin b99129d2d8 ENH: some code cleanup 2007-03-12 10:26:59 -04:00
Brad King 73a5c33f9b BUG: Removed legacy SetupTests method that was causing RUN_TESTS to test twice. 2007-03-05 13:01:02 -05:00
Bill Hoffman b0bc59f709 ENH: commit fix for putting everything in the build on vs 2006-11-09 09:57:23 -05:00
Brad King 8824f7984a BUG: Fixed references to projects outside the build tree and in other locations with spaces in the path. This is needed for out-of-source/out-of-binary subdirectories in the build. 2006-10-09 21:48:48 -04:00
Brad King 9a1d4e92eb BUG: Fix/cleanup custom commands and custom targets. Make empty comment strings work. Fix ZERO_CHECK target always out of date for debugging. Fix Makefile driving of custom commands in a custom target. Fix dependencies on custom targets not in ALL in VS generators. 2006-09-28 16:40:35 -04:00
Brad King 7d2de52c1a ENH: Cleaned up signature of cmMakefile::AddUtilityCommand. It is not valid to have an output from a utility rule and no calls to the method asked for an output anyway. The argument has been removed. 2006-09-28 13:55:26 -04:00
Brad King 87d4d0e039 BUG: cmGlobalGenerator::Build should not always use the /fast target name because dependency checking is often required. It now takes an argument specifying whether to use the /fast target name, and the argument is currently only true for try-compiles. 2006-06-01 15:51:24 -04:00
Ken Martin bf0cb4d49a STYLE: fix line length 2006-05-11 11:47:03 -04:00
Brad King bc135b7fc2 BUG: MSVC* variables should be set in IDE generators instead of just NMake. 2006-05-05 20:54:53 -04:00
Bill Hoffman 0005d625a0 ENH: add special windows CMAKE_MSVCIDE_RUN_PATH variable for adding to the path of vs IDE for running custom commands from cmake 2006-04-25 09:38:29 -04:00
Ken Martin 3d96e52261 STYLE: some m_ to this-> cleanup 2006-03-15 11:02:08 -05:00
Brad King 93c95f1cc5 BUG: Fixed installation of MacOSX Bundle executables and the corresponding install_name remapping support. Extended the BundleTest test to check that this all works. Part of these fixes required changing the signature of AppendDirectoryForConfig in all generators. It now accepts prefix and suffix strings to deal with whether leading or trailing slashes should be included with the configuration subdirectory. 2006-03-03 12:58:48 -05:00
Andy Cedilnik c4156b4531 COMP: Even more global target fixes 2006-02-24 17:35:35 -05:00
Andy Cedilnik 07d0e776ad BUG: More fixing of support for global target son visual studio 2006-02-24 16:20:44 -05:00
Andy Cedilnik 0ba40b59c7 COMP: Handle preinstall properly on IDEs 2006-02-24 09:43:23 -05:00
Andy Cedilnik 1ecd48ba67 COMP: Fix for preinstall 2006-02-24 09:32:27 -05:00
Andy Cedilnik 549b77034e COMP: Fixes for visual studio 2006-02-23 13:37:35 -05:00
Brad King c21287552b ENH: Switched order of slash and configuration name in cmGlobalGenerator::AppendDirectoryForConfig method to increase flexibility. 2006-02-19 19:28:53 -05:00
Brad King bd0b829ffb BUG: Fixed generation of VS8 solution file to not be re-written when loaded by VS and to work with msbuild. 2006-02-14 15:35:34 -05:00
Bill Hoffman 347c5f4b46 ENH: add working directory support 2006-02-08 10:58:36 -05:00
Brad King afa8367885 BUG: Fixed cmTarget::GetFullPath to not append the configuration name when only one configuration is built. It now asks the generator what subdirectory if any to use for a given configuration name. 2006-02-03 11:36:11 -05:00
Brad King 22c62c9e65 BUG: Sweeping changes to cleanup computation of target names. This should
fix many bugs related to target names being computed inconsistently.

- Centralized computation of a target's file name to a method in
  cmTarget.  Now that global knowledge is always available the
  *_CMAKE_PATH cache variables are no longer needed.

- Centralized computation of link library command lines and link
  directory search order.

- Moved computation of link directories needed to link CMake targets
  to be after evaluation of linking dependencies.

This also removed alot of duplicate code in which each version had its
own bugs.

This commit is surrounded by the tags

  CMake-TargetNameCentralization1-pre

and

  CMake-TargetNameCentralization1-post

so make the large set of changes easy to identify.
2006-01-13 18:18:32 -05:00
Brad King 1c7075057f ENH: Added support for parallel builds in VS 8. There is now a special target on which all other targets depend that re-runs CMake if any listfiles have been changed. This addresses bug#2512. 2005-12-13 14:21:28 -05:00
Andy Cedilnik 782bef7374 ENH: Add a way for the generated command to include extra flags. This is useful for CTest (or try compile) to add -j2 2005-12-01 11:41:00 -05:00
Brad King f9aef0e422 ENH: Generator now creates a separate intermediate files directory for each target. This is needed for MSVC 8 to support parallel builds. 2005-07-27 13:36:36 -04:00
Ken Martin 369308ca76 ENH: make LOCATION an computed property of the target and get rid of a bunch of const junk 2005-06-22 09:06:46 -04:00
Ken Martin 8108786494 ENH: fix for incorrect setting of CONFIZGURATION_TYPES 2005-06-07 12:07:34 -04:00
Brad King 1c6f9716c3 BUG: Added space after /clean to avoid putting it together with the build configuration. This fixes the failure of the complext test on the second run in the same tree. 2005-05-05 10:26:41 -04:00
Andy Cedilnik 61d0a75d11 ENH: Add option to ignore errors. Only works on make 2005-04-29 11:49:18 -04:00
Brad King 48702f8a8d COMP: Converting INSTALL->ALL_BUILD dependency implementation to use the AddUtility method on a target. This significantly simplifies the implementation and removes warnings about hiding virtual functions. 2005-04-29 10:11:24 -04:00
Andy Cedilnik cb3ea2328a ENH: Start working on a method that abstracts generating of build command 2005-04-28 18:18:54 -04:00
Brad King 3b81a43294 ENH: Added dependency from INSTALL target to ALL_BUILD target so that targets build before being installed. 2005-04-28 16:21:28 -04:00
Bill Hoffman 0255dab023 BUG: fix for bug 1702, better error message for GUID missing 2005-04-05 10:22:18 -04:00
Andy Cedilnik 86cebea79a ENH: More ctest changes and move SetupTest to superclass 2005-04-01 15:48:46 -05:00
Ken Martin 791aa6052b ENH: add support for out of source source 2005-03-14 11:29:15 -05:00
Ken Martin 3ff6722934 ENH: cleanup by removing all the olf local generate junk that i not longer needed 2005-03-10 13:39:38 -05:00
Brad King 39af9ee1e4 ENH: Updated implementation of custom commands. Multiple command lines are now supported effectively allowing entire scripts to be written. Also removed extra variable expansions and cleaned up passing of commands through to the generators. The command and individual arguments are now kept separate all the way until the generator writes them out. This cleans up alot of escaping issues. 2005-02-22 10:32:44 -05:00
Ken Martin 4d30cb309c ENH: ctest now uses CMake global generator to do the build part of build-and-test 2005-02-22 09:12:10 -05:00
Bill Hoffman 13865fc4fa ENH: move project map to global generator base 2005-01-21 12:26:32 -05:00
Brad King a5ae290a5b STYLE: Adjusted signature of cmGeneratedFileStream to make copy-if-different more explicity. 2004-11-03 07:51:51 -05:00
Brad King e34207c1f0 COMP: Fix new cmGeneratedFileStream for MSVC. 2004-11-03 07:27:44 -05:00
Bill Hoffman 444dbd3309 BUG: fix external project command for VS 7 and 71 2004-09-15 15:15:46 -04:00
Bill Hoffman e192b45f4b ENH: fix for vs 70 generator 2004-09-15 13:03:19 -04:00
Bill Hoffman 5001eed8a5 ENH: clean up of INCLUDE_EXTERNAL_MSPROJECT contributed by Clinton Stimpson 2004-09-15 12:07:57 -04:00
Bill Hoffman b1f3e10439 BUG: make sure env CC and CXX are not set for VS IDE builds 2004-09-15 11:31:54 -04:00
Bill Hoffman 32fe8caaef bug fixes for external projects 2004-09-14 14:05:40 -04:00
Bill Hoffman d385543865 BUG: fix include external project bug 2004-09-14 09:19:21 -04:00
Bill Hoffman b5bdf2cb0a ENH: add better error reporting for file open failures 2004-09-07 16:55:25 -04:00
Bill Hoffman 731369ef9c ENH: try to initialize all languages at the same time 2004-08-27 08:41:07 -04:00
Bill Hoffman bb32a51825 ENH: change RUN_TESTS to use -C and not -D also use GetRequiredDefinition where needed 2004-08-11 16:57:27 -04:00
Brad King 9b1771aef4 BUG: CMAKE_TRY_COMPILE_CONFIGURATION should be obtained from the cmMakefile instance for the listfile containing the TRY_COMPILE call, not the top level listfile. 2004-08-04 16:33:10 -04:00
Bill Hoffman 1d061ae896 fix include order because of GetCurrentDirectory define and windows.h problem 2004-06-15 08:30:22 -04:00
Bill Hoffman c15adc9221 BUG: fix sub project path problem 2004-06-14 10:28:04 -04:00
Bill Hoffman 70eaddbf8e BUG: make sure global generate is done when cmakelist file chagnes, also make sure guids are stored in the cache so the .sln file does not change every time 2004-05-20 16:29:09 -04:00
Andy Cedilnik 9ac968174e ENH: Handle make install target on Visual Studio 6 and 7 and install templates 2004-04-15 13:09:24 -04:00
Bill Hoffman 7fa36510d5 BUG: fix external projects for vc7 2004-04-14 16:58:13 -04:00
Bill Hoffman ddb815c125 ENH: add new subdirectory exclude from top option 2004-03-09 16:28:44 -05:00
Andy Cedilnik 72d8bd1e41 BUG: Fix Bug #445 - Same library in multiple projects can cause problems 2003-12-18 13:17:36 -05:00
Bill Hoffman 587370e1e2 remove more warnings 2003-11-26 16:15:18 -05:00
Bill Hoffman d89adbf049 remove warnings 2003-11-26 16:12:52 -05:00
Bill Hoffman 6e9a96119c ENH: fix some warnings 2003-11-26 16:04:01 -05:00
Bill Hoffman 5ccfaefb48 ENH: generate a sln and dsw file for each sub project in a project 2003-11-26 14:29:53 -05:00
Andy Cedilnik 467fa9dfb3 ENH: Bug #371 - Add build configuration for try compiles using cmake variable 2003-11-12 14:06:02 -05:00
Andy Cedilnik 0b150f69c2 ENH: Use the new RunCommand 2003-08-03 22:34:37 -04:00
Brad King e5ed57ec18 ENH: Registered global generators are now kept in a table in the cmake instance. Added support for documentation with a Generators section. 2003-07-07 21:52:10 -04:00
Ken Martin ba68f771b3 yikes added new custom command support 2003-06-03 10:30:23 -04:00
Bill Hoffman 6112e7fc16 add support for vs 71 2003-05-08 16:59:27 -04:00
Bill Hoffman 0c26d2f4e5 ENH: fix for vs 7 beta1 2003-02-18 16:24:18 -05:00
Brad King 4e6ad941e9 ENH: Visual Studio 6 and 7 generators now set CMAKE_CONFIGURATION_TYPES to be a semicolon-separated list of configurations that will be built. 2002-12-20 12:59:18 -05:00
Andy Cedilnik 682e2c7b8b Add check so that java projects build without C++ 2002-12-11 12:09:52 -05:00