[CMake] Multi-platform visual studio projects

Scott Aron Bloom scott.bloom at onshorecs.com
Sun Mar 8 18:17:24 EDT 2015


Agreed on all points..  Unfortunately...  ;)

I remember going through this with qmake,  which initially could not create a debug and release vc project file...


--Scott


-------- Original message --------
From: David Cole <DLRdave at aol.com>
Date:03/08/2015 13:57 (GMT-08:00)
To: Scott Aron Bloom <scott.bloom at onshorecs.com>
Cc: Ryan Pavlik <ryan.pavlik at gmail.com>, John Drescher <drescherjm at gmail.com>, cmake at cmake.org
Subject: Re: [CMake] Multi-platform visual studio projects

There is no technical reason... But it seems to me there is a strong bias toward single-architecture build trees in the minds of non-VS/non-XCode developers.

There is rampant code like this in the world:

if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  # do 64-bit stuff at CMake time
else()
  # do 32-bit stuff
endif()

Code like this assumes the architecture is determined at configure time rather than at build time. Very similar to using CMAKE_BUILD_TYPE in CMake code geared toward a single-config build. A lot of (some would say too much) effort over the years was required to get multi-configuration builds working well for VS. Unfortunately, a similar approach was not followed for the architecture types, and we've ended up with a proliferation of generators, and now the concept of toolsets, but still the restriction that a generated solution and set of project files is only of a single architecture.

Hope this helps to explain the situation a bit.

I know it's not what you wanted to hear, but, from my perspective, that's the way things are.

If you'd like to work on improving the situation...... I'm sure your efforts would be welcomed by many. ;-)


Cheers,
David C.




On Sunday, March 8, 2015, Scott Aron Bloom <scott.bloom at onshorecs.com<mailto:scott.bloom at onshorecs.com>> wrote:
That's what I have found as well.

Based on that.   Why can't call create a 64 and 32 bit solution?

It would seem to me,  that there is no technical reason.


--Scott


-------- Original message --------
From: Ryan Pavlik <ryan.pavlik at gmail.com>
Date:03/08/2015 06:35 (GMT-08:00)
To: Scott Aron Bloom <scott.bloom at onshorecs.com>, John Drescher <drescherjm at gmail.com>
Cc: cmake at cmake.org
Subject: Re: [CMake] Multi-platform visual studio projects


You are correct: if you're using the visual studio generators it doesn't matter (in general) what your process environment variables are. Note that if you're using find package, some of those scripts use environment variables to help find libraries, but they are not the "standard" variables set by the visual studio command prompt scripts.

The command prompt would matter if, for instance, you were using the nmake makefiles generator.

Ryan

On Wed, Mar 4, 2015, 11:03 AM Scott Aron Bloom <scott.bloom at onshorecs.com> wrote:
Another question on this..

It appears, that cmake creates the proper solution, for 64 bits even if the shell is setup for 32 bits, and vice versa.

Is this correct?  Meaning when its checking the C compiler and CXX compiler ABI info and what not, its not looking for bit width, it uses the generator "Visual Studio...Win64" vs "Visual Studio" for bit width

If Im not using a command line based build, does it matter how my command line is setup for running cmake?

Scott

-----Original Message-----
From: CMake [mailto:cmake-bounces at cmake.org] On Behalf Of Scott Aron Bloom
Sent: Friday, February 27, 2015 8:26 AM
To: John Drescher
Cc: cmake at cmake.org
Subject: Re: [CMake] Multi-platform visual studio projects

Thanks!

-----Original Message-----
From: John Drescher [mailto:drescherjm at gmail.com]
Sent: Friday, February 27, 2015 8:26 AM
To: Scott Aron Bloom
Cc: cmake at cmake.org
Subject: Re: [CMake] Multi-platform visual studio projects

> However,  once the solution is created, does the "path" of the shell matter at all?

No.

John
--

Powered by www.kitware.com<http://www.kitware.com>

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake
--

Powered by www.kitware.com<http://www.kitware.com>

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20150308/0ea14f84/attachment.html>


More information about the CMake mailing list