How to make CMake-generated Visual Studio projects capitalize the files properly? - c++

I'm generating a Visual Studio 2015 C++ project with CMake. Everything works fine, except that all filenames are switched to lowercase. The filenames generated by CMake globbing are properly capitalized, but when opening the resulting project in Visual Studio (or with an editor), I can see that all filenames are suddenly lowercase (even though the paths themselves are properly capitalized).
With the C++/CLI project in the same solution, it works flawlessly.
Normally, I would only see it as a minor annoyance, but saving these files through Visual Studio changes the filename on disk and, by extension, in the repository.
Any ideas?

Related

How do I alter the full path of visual studio project so I can use it on multiple computers?

So for a class we have a couple of programs where we are using opengl. To make setup easier we started by cloning glitter https://github.com/Polytonic/Glitter. I then compliled it according to the instructions for visual studio 2017 and added my code to the project I am working on. I did this on my desktop computer but saved the files in onedrive. When I open the same project on my laptop and try to build the project I get the error "the source directory D:/OneDrive/fall_2017/Glitter does not appear to contain CMakeLists.txt" and several other similar errors. On my laptop the directory to the files is C:/Users/Me/OneDrive/fall_2017/Glitter. The visual studio program lists the full path as D:/OneDrive/fall_2017/Glitter which is the path of the folder on my desktop.
Is there a way for me to change the filepath or is the issue with my cmake file? Do I have to rebuild it for every computer I use it on? I don't know a whole lot about visual studio so I don't know what I need to change to get this to work.
Turns out I have to rebuild on every computer. Thanks to those who left comments.

How to generate Qt .pri files from Visual studio project at the end of the build?

Can I setup my solution in visual studio to automatically generate the .pri files at the end of the build? I thought about perhaps writing a batch file to call a command to generate the .pri files, is it possible to generate .pri files from the command line?
I am working on a Qt C++ application in visual studio made up of 9 subprojects. I also created a QMake based build of the same application using Qt visual studio add in to generate the .pro and .pri files.
The setup is working well, and the application compiles successfully on Windows (using VS2010) and Mac OS X (Qt creator). The problem is that every time I change the projects in visual studio (for example by adding or removing source files), I have to manually regenerate the .pri file for the project so it gets picked up by qmake.
I'm using the Qt visual studio add in v1.1.11. Visual studio 2010, Qt 4.7.4.
I created a small python script to generate .pri files from visual studio .vcxproj.filter files, I've added it to our post build script that runs at the end of the visual studio build, and it seems to work quite well. If anyone else wants it, you can find it here:
https://github.com/JamesSmaldon/prigen.git
You know, Visual Studio is independent on Qt environment. The only opportunity to do what you want is use of some VS plugins, but I've never actually seen such an option anywhere.
As for me, when I add some file to VS solution, I append it manually to the *.pro file.

use msbuild to compile a vcxproj created by vs2010 on a computer without vs

I have created a large Visual C++ 10.0 project which builds nicely within the visual studio ide as well as within the "special" Visual Studio Command Prompt using msbuild with a vcxproj file.
However this project needs to be compiled by computers that do not have the vs ide, but only have the msbuild tool and the vc++ 10.0 runtime files.
The problem is that the vcxproj (created by the vs ide) file contains references to files such as Microsoft.Cpp.Default.props and Microsoft.Cpp.targets which clearly won't be available in a computer without visual studio.
Since all the compile and link command line options are available and fixed (no changes will be necessary), how is it possible to create a new vcxproj file to implement the compiling and linking of the project using these options?
I was finally able to make some tests on a "clean" computer. These are the results:
First, I installed .NET Framework 4.0 from http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17718. Along with it, MSBuild 4.0 was also installed automatically. When I tried to compile I got the following error:
error MSB4019: The imported project "H:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
which means that extra files are needed to compile the vcxproj and these files were missing. Note that simple project files written by hand (and not by the VS IDE) are expected to compile without problems since they contain no references to theses files (I did not test it for certain).
Next, I installed Windows SDK 7.1 from http://www.microsoft.com/download/en/details.aspx?id=8442. The error about missing files disappeared, but I got a new one. This new error (along with the way I overcomed it) is described in http://www.damirscorner.com/CommentView,guid,9121bd6b-876c-4051-8487-de1b95a7e919.aspx.
Doing the above successfully allowed me build my vcxproj file on a computer without vs2010.
I think that the files that you mention are not part of Visual Studio. They are part of MSbuild.

Getting started with CppUnit and Visual Studio 2010

I have searched for answers until I have become crossed-eyed and confused.
I have a Windows XP environment with Visual Studios 2010. I have downloaded and extracted CppUnit 1.12.1 from Sourceforge to C:\CppUnit. I understand I must use Visual Studio to open src/CppUnitLibraries.dsw and Batch Build all of the projects it opens to populate the lib directory with libraries. This is essentially the extent of the CppUnit "installation" process.
However when I try to open CppUnitLibraries.dsw, Visual Studio says the project must be converted to the current Visual C++ project format. If I click "yes" (to convert and open the project), it says the project file cannot be loaded and it asks if I want to remove the unloadable project from the solution, to which I say "No" since I'm certain this is not what I want to have happen. It does this for many projects in the CppUnitLibraries.dsw solution and I'm assuming this is unwanted behavior.
A few of my search results indicated that I should open src\msvc6\testrunner\MsDevCallerListCtrl.cpp, find the line that says...
#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("7.0") lcid("0") raw_interfaces_only named_guids"
...and replace the 7.0 with 10.0. But this does not help.
Am I doing something wrong? What must I do to get started with CppUnit? (I'm sorry if this is a very noobish question. I'm stuck, frustrated, and very confused.)
I've successfully converted CPPUNIT 1.12.1 to be a VS2010 solution. It's described here: http://blogs.powersoft.ca/erict/archive/2012/02/21/cppunit-in-vs2010ndashwith-a-sample.aspx and the solution can be downloaded from there.
I believe that the extension .dsw was used by Visual Studio 6 in 1998.
By Visual Studio .NET 2003, they had moved to .sln Solution Files. Although the format has changed somewhat, Visual Studio 2010 still uses 2010 files.
So, if you've downloaded some software that comes with a .dsw file, Visual Studio 2010 will need to convert that file to a .sln to be able to use it.
Each time we've upgraded to a newer version of Visual Studio, at work, over the years, we've had to make some source code changes, for the newer compiler. So I'd say that any C++ code which comes with .dsw file is likely to require some significant effort.
I'd suggest trying to find a newer build or version of CppUnit, or looking for another tool.
This question looks useful.

VS 2010 intellisense not working for upconverted project

We have a very big C++ solution with several projects for which intellisense works perfectly in Visual Studio 2008, but not at all in Visual Studio 2010 (not even for structs defined in the same file where they are used). I've verified that intellisense does work in VS 2010 for other projects on my machine. I've tried importing one of the problematic projects from a brand-new solution with no success. Re-building the project files from scratch seems promising, but it would require days of work to follow that path, with no guarantee of success at the end. Any alternative suggestions are welcome. The actual error message I get is:
"Intellisense: 'No additional information available'(See 'Troubleshooting IntelliSense in C++ Projects' for further help.)
I've tried that, but there's basically only one suggestion on the MSDN webpage, to make sure "stdafx.h" on the include path, but we're not using precompiled headers and don't include it from anywhere, so I'm pretty sure that's not the problem.
Have you deleted all of the generated database (.ncb and .sdf) files? Corrupted database files is the most likely cause of Visual Studio failing to display IntelliSense.
Intellisense was not included as a component of Visual Studio 2010 for C++/CLI. Unfortunately, it seems they are not going to support it soon either. This is an incredible detriment, as i find myself having to open VS2005 on occasion to simply find an object member.
Here is Microsoft's release on the subject:
http://blogs.msdn.com/b/vcblog/archive/2011/03/03/10136696.aspx