corinthia-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Kelly <>
Subject Re: Visual Studio Solutions (was RE: platform with minzip, commit or not commit.)
Date Fri, 02 Jan 2015 06:27:16 GMT
> On 2 Jan 2015, at 5:31 am, Dennis E. Hamilton <> wrote:
>   So when a VS user clones the repo and opens the solution, the
>   VC Project files will be broken because there is little chance
>   that the absolute path is preserved (except by happy accident).
>   So this user has to run CMake to get new VC Project files to use?
>   Is that it?
> </orcmid>
> [ ... ]
> Please remember that the origin is CMakeFile.txt, so whenever someone
> changes in CMakeFile.txt a cmake -G must be run to update the VC files.
> This was if I remember right why peter did not like my proposal, the fear
> of those not being in sync.

Correct - If we have visual studio projects in the repository (and one could make a similar
argument for Xcode project and Unix makefiles) then it becomes quite problematic when someone
wants to add a new file. With CMake, all they have to do is add a single line to the CMakeLists.txt,
then all platforms will get the file. If we maintain IDE-specific project files, then the
person who adds a new file in say VC has to also update the Xcode project file as well, and
vice-versa. CMake gives us “one source of truth”, so to speak, from which all others are

> <orcmid>
>   OK, now I am flummoxed by the need to handle a CMake dependency.
>   We are expecting the Visual Studio user to use CMake to build the
>   system?  And to make the vc project files?
>   What about when a Visual Studio developer *starts* some code using
>   Visual Studio.  He is adding some source to the tree, he is putting
>   his project and solution in some prescribed place so he can work
>   on the code in Visual Studio, or he simply wants to add a project
>   To the solution that is already there.
>   And he expects to commit his source and the new solution/project.
>   I am having difficulty imagining the instructions that the VS-skilled
>   developer is given to have this work.

I agree it adds complexity to the act of creating a new file - but it’s a necessary evil
if we want the project to continue building on all platforms. If I were working off an Xcode
project in the repository and broke the build for windows and Linux, it would be very inconvenient
for others, who would then have to go and debug the problem to figure out what had changed.

We’ll need to write clear instructions about how to use CMake. It’s not that complicated
to do once you know the steps, and means we can maintain cross-platform interoperability.

> <orcmid>
>   Well, I would love to say that, but I don't think it is accurate.
>   The CMakeFile.txt is not generated is it?  I thought it was
>   inserted by the developer to help CMake do the right thing.
>   Am I mistaken?
> </orcmid>

That’s correct - it instructs the build system in use what to compile and how to compile
it (in a way that works with any supported build system).

>   I am also not coping with the constraints of a build-generation system
>   like CMake.  I would love to never get to that.  These are for my
>   personal projects that I want beginners to be able to use [;<).

Again, it’s necessary if we want something that builds on multiple platforms. For a Windows-only
project, I would go with VC project files for sure.

Dr Peter M. Kelly

PGP key: <>
(fingerprint 5435 6718 59F0 DD1F BFA0 5E46 2523 BAA1 44AE 2966)

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message