summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalVisualStudio7Generator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'fix-11695-spaces-in-vs10-rc-defs'Brad King2011-01-281-3/+6
|\ | | | | | | | | | | | | | | 008d116 VSResource: Avoid windres /D with quoted spaces (#11695) 8f9919d Avoid space in rc /D values for VS6 and Cygwin (#11695) 78fe97f Fix line too long KWStyle issue (#11695) 6627560 VS10: Escape double quote chars in defines for rc files (#11695)
| * Fix line too long KWStyle issue (#11695)David Cole2011-01-261-1/+2
| |
| * VS10: Escape double quote chars in defines for rc files (#11695)David Cole2011-01-261-3/+5
| | | | | | | | | | | | | | | | To get rc defines to work in the VS10 IDE requires \" when constructing PreprocessorDefinitions strings. This is different than defines for cl. Also, per-file rc defines were not being generated. Fix that, too.
* | Honor VS_SCC_* properties in Fortran targets (#10237)Brad King2011-01-171-11/+18
|/ | | | | | Factor out generation of SccProjectName, SccLocalPath, and SccProvider from cmLocalVisualStudio7Generator::WriteProjectStart and call it from cmLocalVisualStudio7Generator::WriteProjectStartFortran too.
* Merge topic 'fix-11461-add-midl-vs10'Brad King2011-01-111-1/+0
|\ | | | | | | | | | | | | e33cbda VSMidl Test: Use correct include_directories with VS6 (#11461) 262da91 Prohibit space in HOME value for VSMidl test. 13caaa3 VS10: Finish Midl support (#11461)
| * VS10: Finish Midl support (#11461)David Cole2011-01-051-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit addresses all of the following: http://public.kitware.com/Bug/view.php?id=8165 http://public.kitware.com/Bug/view.php?id=10687 http://public.kitware.com/Bug/view.php?id=11311 http://public.kitware.com/Bug/view.php?id=11461 With this commit, the midl support for VS10 is as complete as midl support ever was for VS9 and earlier. The VSMidl test should run on all Visual Studio generator based dashboards. CMake no longer sends C++ compiler /D flag values to the midl compiler in Visual Studio generated projects. I think if we want to add that in the future, we should add a way to pass midl compiler specific flags and perhaps an optional way to add in the C++ definitions, too. For now, not sending them along gets past the immediate problem wherein idl files in a CMake VS generated project just didn't work at all. The VSMidl test added in this commit was inspired by the patch attached to 8165. The test had to be modified such that it will run in a directory whose name contains no spaces. There is an existing bug filed against VS10's midl asking Microsoft to fix that problem. But for now, the test added in this commit works by copying the source directory to a location that avoids spaces in the directory names. Inspired-By: Robert Lenhardt
* | Merge topic 'vs-Fortran-only-DLL'Brad King2011-01-111-1/+6
|\ \ | | | | | | | | | | | | f661b95 VS: Fix linking of Fortran-only DLL projects (#10803)
| * | VS: Fix linking of Fortran-only DLL projects (#10803)Brian Bassett2011-01-061-1/+6
| | | | | | | | | | | | Emit the LinkDLL attribute of VFLinkerTool for Fortran DLLs.
* | | Map multiple /FI flags for VS < 10 (#11649)Brad King2011-01-031-1/+1
| |/ |/| | | | | | | The /FI flag may be repeated so the flag table entry needs to be marked with SemicolonAppendable. This was already the case for VS 10.
* | Simplify VS generator ConstructScript interfaceBrad King2010-12-081-12/+2
| | | | | | | | | | Pass to cmLocalVisualStudioGenerator::ConstructScript a cmCustomCommand instance instead of extracting arguments at all call sites.
* | Improve signature of cmLocalGenerator::GetRealDependencyBrad King2010-12-081-3/+6
| | | | | | | | Allow file-level custom command dependencies to be skipped.
* | Set Intel .vfproj RuntimeLibrary attributeBrad King2010-11-091-0/+1
| | | | | | | | | | | | Look for the "/threads", "/libs:dll", and "/dbglibs" flags and convert them to the proper RuntimeLibrary attribute value in the IDE. This is a 3-to-1 flag mapping and such needs special handling in the parser.
* | Fix Intel .vfproj SubSystem attribute valuesBrad King2010-11-091-2/+4
| | | | | | | | | | | | | | | | The SubSystem attribute value must be "subSystemConsole" or "subSystemWindows", not "1" or "2". Commit 20f49730 (Reset platform/compiler info status for each language, 2010-09-28) exposed this bug by (correctly) passing the /libs:dll flag to the compiler, which chokes the linker if a value for "/subsystem:" is not given.
* | VS: Map /ENTRY linker option to EntryPointSymbolPatrick Gansterer2010-08-261-0/+2
| |
* | VS: Add more TargetMachine option valuesPatrick Gansterer2010-08-241-0/+15
| |
* | For VS10: Really use full path file names.David Cole2010-06-231-1/+3
| | | | | | | | | | | | | | | | | | | | | | I naively assumed in my previous commit that the Convert call would correctly convert a relative path file name correctly relative to the makefile's current output directory. It actually converts it relative to the process's current working directory. So it would be different depending on how you launched cmake-gui. This commit ensures that the generated files are always the same by starting with a full path to begin with, based on the makefile GetCurrentOutputDirectory method.
* | Use full path file names to express dependencies.David Cole2010-06-211-3/+5
|/ | | | | | | | | This is especially important for the Visual Studio 10 generator and its quirky current working directory behavior. Also, emit more information about exactly what files are out of date when cmakeCheckStampFile returns false.
* Add STATIC_LIBRARY_FLAGS_<CONFIG> property (#10768)Brad King2010-05-281-1/+14
| | | | This is a per-configuration version of STATIC_LIBRARY_FLAGS.
* Fix .pdb name attribute in VS project filesBrad King2010-04-281-2/+2
| | | | | | | The PDB file name for VCLinkerTool is specified by the xml attribute "ProgramDatabaseFile", not "ProgramDataBaseFile" (note the lower-case character 'b'). VS seems to cope with the incorrect capitalization but the combination of VS 7.1 and Incredibuild does not. See issue #10614.
* Partial fix from bug #10503, use full paths to fix custom commands.Bill Hoffman2010-04-021-2/+4
| | | | This fixes tests ExternalProject and LinkDirectory for VS 2010.
* Fix issue #9042 - correctly this time. Fix failing tests on VS 7, 8 and 9 ↵David Cole2009-12-241-2/+2
| | | | dashboards. Use ConvertToXMLOutputPathSingle instead of ConvertToOptionallyRelativeOutputPath to handle spaces in the path and double quoting properly. Related to commit trying to fix issue #9042 from yesterday.
* Fix issue #9042 - use relative path for pdb file name when ↵David Cole2009-12-231-2/+6
| | | | CMAKE_USE_RELATIVE_PATHS is on.
* Fix .vfproj files with per-source settingsBrad King2009-12-021-0/+4
| | | | | | | The Intel Fortran plugin to VS defines VFFortranCompilerTool as the compiler tool. This commit fixes generated projects to use that tool for per-source settings instead of VCCLCompilerTool. We were already using it for target-wide compiler settings.
* Do not link library dependencies in VS solutionsBrad King2009-10-201-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | In VS 8 and greater this commit implements add_dependencies(myexe mylib) # depend without linking by adding the LinkLibraryDependencies="false" option to project files. Previously the above code would cause myexe to link to mylib in VS 8 and greater. This option prevents dependencies specified only in the solution from being linked. We already specify the real link library dependencies in the project files, and any project depending on this to link would not have worked in Makefile generators. We were already avoiding this problem in VS 7.1 and below by inserting intermediate mylib_UTILITY targets. It was more important for those versions because if a static library depended on another library the librarian would copy the dependees into the depender! This is no longer the case with VS 8 and above so we do not need that workaround. See issue #9732.
* Avoid C++ linker language in VS Fortran projectBrad King2009-10-191-1/+2
| | | | | | | | | | | | | | | In Visual Studio project files we pass compiler flags to the whole target based on the linker language, which works for MS tools and combinations of C and C++. For the Intel Fortran plugin though the generated .vfproj files should never contain C or C++ options. We generate .vfproj files only for targets consisting only of Fortran code. Now that the linker language is computed transitively through linking it is possible that the linker language is C++ for an otherwise Fortran-only project. This commit forces Fortran as the linker language for the purpose of specifying target-wide flags in .vfproj files. See issue #9719.
* Fix use of module .def files for MS toolsBrad King2009-09-291-21/+7
| | | | | | | We recognize .def source files and map them to the /DEF:<file> option in the MSVC tools. Previously this worked only for shared libraries. This commit cleans up the implementation and makes it work for executables too. See issue #9613.
* Convert CMake to OSI-approved BSD LicenseBrad King2009-09-281-14/+9
| | | | | | | 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.
* Fix .vfproj file version for Intel Fortran 10.1Brad King2009-09-281-0/+6
| | | | | | | The commit "Generate proper Intel Fortran project version" replaced the hard-coded 9.10 value with a runtime registry lookup of the real version. Version 10.1 actually uses project file format 9.10, so this commit switches it back for that version. See issue #9169.
* Bug #9430, recognize the FR flagBill Hoffman2009-09-171-0/+1
|
* Generate proper Intel Fortran project versionBrad King2009-09-161-1/+13
| | | | | | | The Intel Visual Fortran compiler plugin for MS Visual Studio may be one of several versions of the Intel compiler. This commit teaches CMake to detect the plugin version and set the version number in .vfproj files. See issue #9169.
* Silence VS generator for missing CMakeLists.txtBrad King2009-09-021-0/+4
| | | | | | | | CMake Makefile generators silently ignore missing CMakeLists.txt files and just treat the source directory as if it had an empty input file. This will be addressed with a new CMake Policy, but for now we make the VS generator consistent with the Makefile generator behavior. The VS generator will need to handle the OLD behavior of the policy anyway.
* ENH: remove code duplication and use cmVisualStudioGeneratorOptions for all ↵Bill Hoffman2009-07-281-378/+8
| | | | versions of vs 7 and greater.
* ENH: remove INCLUDE_EXTERNAL_MSPROJECT name hack, and use target properties ↵Bill Hoffman2009-07-141-7/+5
| | | | instead, fix VXExternalInclude test for VS10
* ENH: only 5 failing tests for VS 10Bill Hoffman2009-07-101-17/+33
|
* ENH: Pass config to cmTarget::GetLinkerLanguageBrad King2009-07-081-2/+2
| | | | | | This passes the build configuration to most GetLinkerLanguage calls. In the future the linker language will account for targets linked in each configuration.
* ENH: Simpler cmTarget::GetLinkerLanguage signatureBrad King2009-07-071-4/+2
| | | | | | | This method previously required the global generator to be passed, but that was left from before cmTarget had its Makefile member. Now the global generator can be retrieved automatically, so we can drop the method argument.
* BUG: Avoid cmTarget::GetDirectory for utilitiesBrad King2009-07-031-1/+1
| | | | | | | Since utility targets have no main output files like executables or libraries, they do not define an output directory. This removes a call to cmTarget::GetDirectory from cmLocalVisualStudio{6,7}Generator for such targets.
* STYLE: Replace large if() with named booleanBrad King2009-07-031-4/+3
| | | | | In cmLocalVisualStudio{6,7}Generator this replaces a large if() test with a re-usable result stored in a boolean variable named accordingly.
* ENH: Create exe implib dir in VS pre-link ruleBrad King2009-06-161-6/+6
| | | | | | This moves creation of an executable's import library directory in VS projects from the pre-build step to the pre-link step. It makes sense to create the directory at the last moment.
* ENH: Generalize exe implib dir creation for VSBrad King2009-06-161-28/+6
| | | | | | | | In VS 7,8,9 executable targets we generate a build event to create the output directory for the import library in case the executable marks symbols with dllexport (VS forgets to create this directory). This generalizes computation of the custom command line to support future use with other VS versions.
* BUG: Create an exe's implib output dir for VSBrad King2009-06-151-0/+28
| | | | | | | | If an executable marks symbols with __declspec(dllexport) then VS creates an import library for it. However, it forgets to create the directory that will contain the import library if it is different from the location of the executable. We work around this VS bug by creating a pre-build event on the executable target to make the directory.
* ENH: Refactor VS 7,8,9 build event generationBrad King2009-06-121-122/+78
| | | | | | | In cmLocalVisualStudio7Generator we generate pre-build, pre-link, and post-build events into project files. This refactors the generation code for the three event types into a private EventWriter class to avoid duplicate code.
* STYLE: fix line lenghtBill Hoffman2009-03-281-2/+4
|
* BUG: fix for #8686 add some more compiler flagsBill Hoffman2009-03-271-0/+11
|
* BUG: fix for 7845, idl files compile even with headerfile only onBill Hoffman2009-01-271-2/+1
|
* ENH: Refactor passing of max length object dirBrad King2008-12-161-16/+16
| | | | | | When computing the maximum length full path to the build directory under which object files will be placed, pass the actual path instead of just its length. This will be useful for error message generation.
* ENH: make the scc optionalBill Hoffman2008-10-271-12/+0
|
* BUG: fix for 7839 and 4524Bill Hoffman2008-10-271-7/+2
|
* BUG: fix for 4524, add support for target properties to set vs source code ↵Bill Hoffman2008-10-071-3/+29
| | | | control information
* STYLE: fix line length stuff for KWStyleBill Hoffman2008-10-011-1/+2
|