Re: [CMake] User configuration files for Visual Studio

2012-01-20 Thread Robert Dailey
Any thoughts on this guys? Here are my ideas for this:

For VS8 and VS9:

CMake will only generate the my_project.vcproj.user files. Visual Studio
will NOT use these unless you delete your *other* user file, which is in
the format of: my_project.vcproj.COMPUTER.USER.user. If the user wishes to
have the generated values, they must delete the machine-specific user file,
and reload visual studio, at which point it will use the
my_project.vcproj.user file as a source for defaults, and then it will
generate the my_project.vcproj.COMPUTER.USER.user file with those values.

For VS10 (and not sure about VS11):

Since Visual Studio does not generate a secondary .user file like it did in
VS8 and VS9, CMake should ONLY generate the user file if one does not exist
already. The first time generation happens, obviously they will not exist
so they will be generated. Everytime thereafter it will not generate them.
If the user wishes to get new values, they need to delete their
my_project.vcproj.user file.

To aid in deleting the vcproj files for each appropriate version of Visual
Studio, you could automate this in your CMake scripts. You could
recursively delete all *user files, or you could delete only a select few
based on how user file information is updated. Since the circumstances
under which the user files will be edited, deleted, updated, and so forth,
are different between users, CMake shouldn't do anything to facilitate
this, but instead allow enough flexibility in the scripts to let the users
implement these details.

How does my idea sound? It lets you generate these files without replacing
custom user-edits made through visual studio, or even by hand.

-
Robert Dailey


On Thu, Jan 12, 2012 at 11:31 AM, James Bigler jamesbig...@gmail.comwrote:

 I would be fine with that if the generation of these files would only
 happen if either they weren't present or you manually forced them to be
 created.  Folks are just used to modifying them in the VS IDE, and it would
 be too easy for users to make a change in the IDE and then have CMake
 overwrite them on a configure.  Plus the project reloading in VS is really
 slow.

 James


 On Thu, Jan 12, 2012 at 10:17 AM, Robert Dailey rcdai...@gmail.comwrote:

 Or you could just change the properties as normal in the VS options
 dialog, until you find settings that work and you want to keep. Then update
 the cache variables or whatnot in CMake, so next time you generate you will
 have them.

 There is nothing preventing you from using the normal method of changing
 debug parameters.

 -
 Robert Dailey



 On Wed, Jan 11, 2012 at 5:53 PM, James Bigler jamesbig...@gmail.comwrote:

 On Wed, Jan 11, 2012 at 8:41 AM, David Cole david.c...@kitware.comwrote:

 I'm sure there are a handful of interested parties on this topic.

 One concern I would have is that if we start to generate this, we
 might clobber stuff that users go in and edit by hand in the Visual
 Studio UI. It's a minor concern, but if I do go in and add a
 PATH=1;2;3;4 to the environment, then I wouldn't want CMake to
 clobber it. I could get used to editing a CMake file or a
 configuration .in file for such settings though...

 It's a reasonable idea.


 I would be vehemently against any idea that would *require* me to edit
 any file to change debug parameters.  This is an integral part of how VS
 should be used.  The time for an iteration cycle and annoyance of this
 would be too high for most developers.

 1. Edit paramfile
 2. Configure with CMake
 3. Wait for VS to recognize the file has changed or the slow slow CMake
 VS plugin to figure out what is going on and ask me to reload the file.
 4. Run my code
 5. Decide I need to change another debug parameter
 6. Rinse and repeat until I decide to pull my hair out

 I would not be opposed for a default version of the file or the option
 to overwrite the existing ones, but once it has been created please leave
 it alone and let me configure it through the GUI.

 James




--

Powered by www.kitware.com

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

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

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] User configuration files for Visual Studio

2012-01-20 Thread James Bigler
On Fri, Jan 20, 2012 at 9:17 AM, Robert Dailey rcdai...@gmail.com wrote:

 Any thoughts on this guys? Here are my ideas for this:

 For VS8 and VS9:

 CMake will only generate the my_project.vcproj.user files. Visual Studio
 will NOT use these unless you delete your *other* user file, which is in
 the format of: my_project.vcproj.COMPUTER.USER.user. If the user wishes to
 have the generated values, they must delete the machine-specific user file,
 and reload visual studio, at which point it will use the
 my_project.vcproj.user file as a source for defaults, and then it will
 generate the my_project.vcproj.COMPUTER.USER.user file with those values.

 For VS10 (and not sure about VS11):

 Since Visual Studio does not generate a secondary .user file like it did
 in VS8 and VS9, CMake should ONLY generate the user file if one does not
 exist already. The first time generation happens, obviously they will not
 exist so they will be generated. Everytime thereafter it will not generate
 them. If the user wishes to get new values, they need to delete their
 my_project.vcproj.user file.

 To aid in deleting the vcproj files for each appropriate version of Visual
 Studio, you could automate this in your CMake scripts. You could
 recursively delete all *user files, or you could delete only a select few
 based on how user file information is updated. Since the circumstances
 under which the user files will be edited, deleted, updated, and so forth,
 are different between users, CMake shouldn't do anything to facilitate
 this, but instead allow enough flexibility in the scripts to let the users
 implement these details.

 How does my idea sound? It lets you generate these files without replacing
 custom user-edits made through visual studio, or even by hand.

 -
 Robert Dailey



 On Thu, Jan 12, 2012 at 11:31 AM, James Bigler jamesbig...@gmail.comwrote:

 I would be fine with that if the generation of these files would only
 happen if either they weren't present or you manually forced them to be
 created.  Folks are just used to modifying them in the VS IDE, and it would
 be too easy for users to make a change in the IDE and then have CMake
 overwrite them on a configure.  Plus the project reloading in VS is really
 slow.

 James


 On Thu, Jan 12, 2012 at 10:17 AM, Robert Dailey rcdai...@gmail.comwrote:

 Or you could just change the properties as normal in the VS options
 dialog, until you find settings that work and you want to keep. Then update
 the cache variables or whatnot in CMake, so next time you generate you will
 have them.

 There is nothing preventing you from using the normal method of changing
 debug parameters.

 -
 Robert Dailey



 On Wed, Jan 11, 2012 at 5:53 PM, James Bigler jamesbig...@gmail.comwrote:

 On Wed, Jan 11, 2012 at 8:41 AM, David Cole david.c...@kitware.comwrote:

 I'm sure there are a handful of interested parties on this topic.

 One concern I would have is that if we start to generate this, we
 might clobber stuff that users go in and edit by hand in the Visual
 Studio UI. It's a minor concern, but if I do go in and add a
 PATH=1;2;3;4 to the environment, then I wouldn't want CMake to
 clobber it. I could get used to editing a CMake file or a
 configuration .in file for such settings though...

 It's a reasonable idea.


 I would be vehemently against any idea that would *require* me to edit
 any file to change debug parameters.  This is an integral part of how VS
 should be used.  The time for an iteration cycle and annoyance of this
 would be too high for most developers.

 1. Edit paramfile
 2. Configure with CMake
 3. Wait for VS to recognize the file has changed or the slow slow CMake
 VS plugin to figure out what is going on and ask me to reload the file.
 4. Run my code
 5. Decide I need to change another debug parameter
 6. Rinse and repeat until I decide to pull my hair out

 I would not be opposed for a default version of the file or the option
 to overwrite the existing ones, but once it has been created please leave
 it alone and let me configure it through the GUI.

 James





I think this is a solid approach.

James
--

Powered by www.kitware.com

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

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

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] User configuration files for Visual Studio

2012-01-12 Thread Robert Dailey
Or you could just change the properties as normal in the VS options dialog,
until you find settings that work and you want to keep. Then update the
cache variables or whatnot in CMake, so next time you generate you will
have them.

There is nothing preventing you from using the normal method of changing
debug parameters.

-
Robert Dailey


On Wed, Jan 11, 2012 at 5:53 PM, James Bigler jamesbig...@gmail.com wrote:

 On Wed, Jan 11, 2012 at 8:41 AM, David Cole david.c...@kitware.comwrote:

 I'm sure there are a handful of interested parties on this topic.

 One concern I would have is that if we start to generate this, we
 might clobber stuff that users go in and edit by hand in the Visual
 Studio UI. It's a minor concern, but if I do go in and add a
 PATH=1;2;3;4 to the environment, then I wouldn't want CMake to
 clobber it. I could get used to editing a CMake file or a
 configuration .in file for such settings though...

 It's a reasonable idea.


 I would be vehemently against any idea that would *require* me to edit any
 file to change debug parameters.  This is an integral part of how VS should
 be used.  The time for an iteration cycle and annoyance of this would be
 too high for most developers.

 1. Edit paramfile
 2. Configure with CMake
 3. Wait for VS to recognize the file has changed or the slow slow CMake VS
 plugin to figure out what is going on and ask me to reload the file.
 4. Run my code
 5. Decide I need to change another debug parameter
 6. Rinse and repeat until I decide to pull my hair out

 I would not be opposed for a default version of the file or the option to
 overwrite the existing ones, but once it has been created please leave it
 alone and let me configure it through the GUI.

 James

--

Powered by www.kitware.com

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

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

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] User configuration files for Visual Studio

2012-01-12 Thread James Bigler
I would be fine with that if the generation of these files would only
happen if either they weren't present or you manually forced them to be
created.  Folks are just used to modifying them in the VS IDE, and it would
be too easy for users to make a change in the IDE and then have CMake
overwrite them on a configure.  Plus the project reloading in VS is really
slow.

James

On Thu, Jan 12, 2012 at 10:17 AM, Robert Dailey rcdai...@gmail.com wrote:

 Or you could just change the properties as normal in the VS options
 dialog, until you find settings that work and you want to keep. Then update
 the cache variables or whatnot in CMake, so next time you generate you will
 have them.

 There is nothing preventing you from using the normal method of changing
 debug parameters.

 -
 Robert Dailey



 On Wed, Jan 11, 2012 at 5:53 PM, James Bigler jamesbig...@gmail.comwrote:

 On Wed, Jan 11, 2012 at 8:41 AM, David Cole david.c...@kitware.comwrote:

 I'm sure there are a handful of interested parties on this topic.

 One concern I would have is that if we start to generate this, we
 might clobber stuff that users go in and edit by hand in the Visual
 Studio UI. It's a minor concern, but if I do go in and add a
 PATH=1;2;3;4 to the environment, then I wouldn't want CMake to
 clobber it. I could get used to editing a CMake file or a
 configuration .in file for such settings though...

 It's a reasonable idea.


 I would be vehemently against any idea that would *require* me to edit
 any file to change debug parameters.  This is an integral part of how VS
 should be used.  The time for an iteration cycle and annoyance of this
 would be too high for most developers.

 1. Edit paramfile
 2. Configure with CMake
 3. Wait for VS to recognize the file has changed or the slow slow CMake
 VS plugin to figure out what is going on and ask me to reload the file.
 4. Run my code
 5. Decide I need to change another debug parameter
 6. Rinse and repeat until I decide to pull my hair out

 I would not be opposed for a default version of the file or the option to
 overwrite the existing ones, but once it has been created please leave it
 alone and let me configure it through the GUI.

 James



--

Powered by www.kitware.com

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

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

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] User configuration files for Visual Studio

2012-01-11 Thread Robert Dailey
I guess I have failed to strike the interest of anyone on this?

-
Robert Dailey


On Mon, Jan 9, 2012 at 5:58 PM, Robert Dailey rcdai...@gmail.com wrote:

 there are .user files generated by newer versions of Visual Studio (since
 2005 I believe) that contain per-machine or per-workspace information. For
 all intents and purposes these are temporary files that are not checked
 into version control.

 The normal file naming convention for these are:

 project.vcproj.DOMAIN.USER.user

 Where DOMAIN is the machine/domain name, and USER is the local account
 name.

 I found out a couple of years ago that if you rename it to this:

 project.vcproj.user

 Visual Studio will treat this as defaults for the machine-specific
 version created using the naming convention I first outlined.

 The user files are useful for setting debug working directory and command
 arguments. There are some other things you can set but I have never found a
 use for them. Since I like to set these two parameters, what I've done is
 keep my template user file in version control, and use CMake's
 configure_file() to fill in the command arguments and working directory
 fields for me. This approach is a good workaround but I'd really like to
 see CMake generate these for me. Right now I have to keep 1 user file for
 each version of visual studio that can be used, and configure them
 differently based on VS IDE selection.

 Would it be suitable for CMake to incorporate this functionality? If CMake
 provided built-in support for this, we could create target properties that
 would set these fields on the target (it would set them on the generated
 user file instead of the vcproj file like normal target properties would
 do):

 set_target_properties( project PROPERTIES
DEBUG_COMMAND_ARGUMENTS -debug -reg
DEBUG_WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
 )

 I'd be happy to help implement this should David, Bill, and others find it
 to be a good idea.

 PS: I think I can do it without boost this time ;)

 -
 Robert Dailey

--

Powered by www.kitware.com

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

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

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] User configuration files for Visual Studio

2012-01-11 Thread David Cole
I'm sure there are a handful of interested parties on this topic.

One concern I would have is that if we start to generate this, we
might clobber stuff that users go in and edit by hand in the Visual
Studio UI. It's a minor concern, but if I do go in and add a
PATH=1;2;3;4 to the environment, then I wouldn't want CMake to
clobber it. I could get used to editing a CMake file or a
configuration .in file for such settings though...

It's a reasonable idea.


On Wed, Jan 11, 2012 at 9:54 AM, Robert Dailey rcdai...@gmail.com wrote:
 I guess I have failed to strike the interest of anyone on this?

 -
 Robert Dailey



 On Mon, Jan 9, 2012 at 5:58 PM, Robert Dailey rcdai...@gmail.com wrote:

 there are .user files generated by newer versions of Visual Studio (since
 2005 I believe) that contain per-machine or per-workspace information. For
 all intents and purposes these are temporary files that are not checked into
 version control.

 The normal file naming convention for these are:

 project.vcproj.DOMAIN.USER.user

 Where DOMAIN is the machine/domain name, and USER is the local account
 name.

 I found out a couple of years ago that if you rename it to this:

 project.vcproj.user

 Visual Studio will treat this as defaults for the machine-specific
 version created using the naming convention I first outlined.

 The user files are useful for setting debug working directory and command
 arguments. There are some other things you can set but I have never found a
 use for them. Since I like to set these two parameters, what I've done is
 keep my template user file in version control, and use CMake's
 configure_file() to fill in the command arguments and working directory
 fields for me. This approach is a good workaround but I'd really like to see
 CMake generate these for me. Right now I have to keep 1 user file for each
 version of visual studio that can be used, and configure them differently
 based on VS IDE selection.

 Would it be suitable for CMake to incorporate this functionality? If CMake
 provided built-in support for this, we could create target properties that
 would set these fields on the target (it would set them on the generated
 user file instead of the vcproj file like normal target properties would
 do):

 set_target_properties( project PROPERTIES
    DEBUG_COMMAND_ARGUMENTS -debug -reg
    DEBUG_WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
 )

 I'd be happy to help implement this should David, Bill, and others find it
 to be a good idea.

 PS: I think I can do it without boost this time ;)

 -
 Robert Dailey



 --

 Powered by www.kitware.com

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

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

 Follow this link to subscribe/unsubscribe:
 http://www.cmake.org/mailman/listinfo/cmake
--

Powered by www.kitware.com

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

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

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] User configuration files for Visual Studio

2012-01-11 Thread Michael Jackson
In light of the current topic about copying 3rd Party DLLs into the build 
directory on Visual Studio one suggestion was to create this type of file. With 
that in mind I am now interested in this feature. Would make a nice addition 
and help those of us who do 32/64 dev all on the same machine where we can not 
set global paths.

Thanks
___
Mike JacksonPrincipal Software Engineer
BlueQuartz SoftwareDayton, Ohio
mike.jack...@bluequartz.net  www.bluequartz.net

On Jan 11, 2012, at 9:54 AM, Robert Dailey wrote:

 I guess I have failed to strike the interest of anyone on this?
 
 -
 Robert Dailey
 
 
 On Mon, Jan 9, 2012 at 5:58 PM, Robert Dailey rcdai...@gmail.com wrote:
 there are .user files generated by newer versions of Visual Studio (since 
 2005 I believe) that contain per-machine or per-workspace information. For 
 all intents and purposes these are temporary files that are not checked into 
 version control.
 
 The normal file naming convention for these are:
 
 project.vcproj.DOMAIN.USER.user
 
 Where DOMAIN is the machine/domain name, and USER is the local account name.
 
 I found out a couple of years ago that if you rename it to this:
 
 project.vcproj.user
 
 Visual Studio will treat this as defaults for the machine-specific version 
 created using the naming convention I first outlined.
 
 The user files are useful for setting debug working directory and command 
 arguments. There are some other things you can set but I have never found a 
 use for them. Since I like to set these two parameters, what I've done is 
 keep my template user file in version control, and use CMake's 
 configure_file() to fill in the command arguments and working directory 
 fields for me. This approach is a good workaround but I'd really like to see 
 CMake generate these for me. Right now I have to keep 1 user file for each 
 version of visual studio that can be used, and configure them differently 
 based on VS IDE selection.
 
 Would it be suitable for CMake to incorporate this functionality? If CMake 
 provided built-in support for this, we could create target properties that 
 would set these fields on the target (it would set them on the generated user 
 file instead of the vcproj file like normal target properties would do):
 
 set_target_properties( project PROPERTIES
DEBUG_COMMAND_ARGUMENTS -debug -reg
DEBUG_WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
 )
 
 I'd be happy to help implement this should David, Bill, and others find it to 
 be a good idea.
 
 PS: I think I can do it without boost this time ;)
 
 -
 Robert Dailey
 
 --
 
 Powered by www.kitware.com
 
 Visit other Kitware open-source projects at 
 http://www.kitware.com/opensource/opensource.html
 
 Please keep messages on-topic and check the CMake FAQ at: 
 http://www.cmake.org/Wiki/CMake_FAQ
 
 Follow this link to subscribe/unsubscribe:
 http://www.cmake.org/mailman/listinfo/cmake

--

Powered by www.kitware.com

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

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

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] User configuration files for Visual Studio

2012-01-11 Thread Robert Dailey
For VS8-VS9, this won't be a big issue since Visual Studio does not use the
.user file directly, instead it copies it and creates a DOMAIN.USER.user
file instead. For VS10, however, it does not do this, so when we edit the
.user file it will use that file directly. I think VS10 is the only version
that will be of concern to your point.

I think instead of adding this to the target properties function, we should
add a new function for this, for several reasons:

1) There are a ton of properties one can set in the USER file. These would
only add to the already-cluttered target properties list.
2) Since these are all VS specific, adding a new command will be easier to
track the MS IDE specific properties.
3) If we add them to set_target_properties, we'll need to use some strange
naming convention to make it obvious that these are not portable. For
example: VS_DEBUG_USER_COMMAND_PARAMETERS. Whereas if we have a
set_user_properties command, we can give them cleaner names like
COMMAND_PARAMETERS, ENVIRONMENT_VARIABLES, WORKING_DIRECTORY, and so forth.

Example:

set_user_properties( target_name PROPERTIES COMMAND_PARAMETERS -debug
-reg ENVIRONMENT_VARIABLES=${path};INSTALL_DIR=${installdir} )

When generating for anything that isn't the VS IDE, or doesn't have a
similar, translatable concept, this function will be a no-op.

-
Robert Dailey


On Wed, Jan 11, 2012 at 9:41 AM, David Cole david.c...@kitware.com wrote:

 I'm sure there are a handful of interested parties on this topic.

 One concern I would have is that if we start to generate this, we
 might clobber stuff that users go in and edit by hand in the Visual
 Studio UI. It's a minor concern, but if I do go in and add a
 PATH=1;2;3;4 to the environment, then I wouldn't want CMake to
 clobber it. I could get used to editing a CMake file or a
 configuration .in file for such settings though...

 It's a reasonable idea.


 On Wed, Jan 11, 2012 at 9:54 AM, Robert Dailey rcdai...@gmail.com wrote:
  I guess I have failed to strike the interest of anyone on this?
 
  -
  Robert Dailey
 
 
 
  On Mon, Jan 9, 2012 at 5:58 PM, Robert Dailey rcdai...@gmail.com
 wrote:
 
  there are .user files generated by newer versions of Visual Studio
 (since
  2005 I believe) that contain per-machine or per-workspace information.
 For
  all intents and purposes these are temporary files that are not checked
 into
  version control.
 
  The normal file naming convention for these are:
 
  project.vcproj.DOMAIN.USER.user
 
  Where DOMAIN is the machine/domain name, and USER is the local account
  name.
 
  I found out a couple of years ago that if you rename it to this:
 
  project.vcproj.user
 
  Visual Studio will treat this as defaults for the machine-specific
  version created using the naming convention I first outlined.
 
  The user files are useful for setting debug working directory and
 command
  arguments. There are some other things you can set but I have never
 found a
  use for them. Since I like to set these two parameters, what I've done
 is
  keep my template user file in version control, and use CMake's
  configure_file() to fill in the command arguments and working directory
  fields for me. This approach is a good workaround but I'd really like
 to see
  CMake generate these for me. Right now I have to keep 1 user file for
 each
  version of visual studio that can be used, and configure them
 differently
  based on VS IDE selection.
 
  Would it be suitable for CMake to incorporate this functionality? If
 CMake
  provided built-in support for this, we could create target properties
 that
  would set these fields on the target (it would set them on the generated
  user file instead of the vcproj file like normal target properties would
  do):
 
  set_target_properties( project PROPERTIES
 DEBUG_COMMAND_ARGUMENTS -debug -reg
 DEBUG_WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
  )
 
  I'd be happy to help implement this should David, Bill, and others find
 it
  to be a good idea.
 
  PS: I think I can do it without boost this time ;)
 
  -
  Robert Dailey
 
 
 
  --
 
  Powered by www.kitware.com
 
  Visit other Kitware open-source projects at
  http://www.kitware.com/opensource/opensource.html
 
  Please keep messages on-topic and check the CMake FAQ at:
  http://www.cmake.org/Wiki/CMake_FAQ
 
  Follow this link to subscribe/unsubscribe:
  http://www.cmake.org/mailman/listinfo/cmake

--

Powered by www.kitware.com

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

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

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] User configuration files for Visual Studio

2012-01-11 Thread James Bigler
On Wed, Jan 11, 2012 at 8:41 AM, David Cole david.c...@kitware.com wrote:

 I'm sure there are a handful of interested parties on this topic.

 One concern I would have is that if we start to generate this, we
 might clobber stuff that users go in and edit by hand in the Visual
 Studio UI. It's a minor concern, but if I do go in and add a
 PATH=1;2;3;4 to the environment, then I wouldn't want CMake to
 clobber it. I could get used to editing a CMake file or a
 configuration .in file for such settings though...

 It's a reasonable idea.


I would be vehemently against any idea that would *require* me to edit any
file to change debug parameters.  This is an integral part of how VS should
be used.  The time for an iteration cycle and annoyance of this would be
too high for most developers.

1. Edit paramfile
2. Configure with CMake
3. Wait for VS to recognize the file has changed or the slow slow CMake VS
plugin to figure out what is going on and ask me to reload the file.
4. Run my code
5. Decide I need to change another debug parameter
6. Rinse and repeat until I decide to pull my hair out

I would not be opposed for a default version of the file or the option to
overwrite the existing ones, but once it has been created please leave it
alone and let me configure it through the GUI.

James
--

Powered by www.kitware.com

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

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

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

[CMake] User configuration files for Visual Studio

2012-01-09 Thread Robert Dailey
there are .user files generated by newer versions of Visual Studio (since
2005 I believe) that contain per-machine or per-workspace information. For
all intents and purposes these are temporary files that are not checked
into version control.

The normal file naming convention for these are:

project.vcproj.DOMAIN.USER.user

Where DOMAIN is the machine/domain name, and USER is the local account name.

I found out a couple of years ago that if you rename it to this:

project.vcproj.user

Visual Studio will treat this as defaults for the machine-specific
version created using the naming convention I first outlined.

The user files are useful for setting debug working directory and command
arguments. There are some other things you can set but I have never found a
use for them. Since I like to set these two parameters, what I've done is
keep my template user file in version control, and use CMake's
configure_file() to fill in the command arguments and working directory
fields for me. This approach is a good workaround but I'd really like to
see CMake generate these for me. Right now I have to keep 1 user file for
each version of visual studio that can be used, and configure them
differently based on VS IDE selection.

Would it be suitable for CMake to incorporate this functionality? If CMake
provided built-in support for this, we could create target properties that
would set these fields on the target (it would set them on the generated
user file instead of the vcproj file like normal target properties would
do):

set_target_properties( project PROPERTIES
   DEBUG_COMMAND_ARGUMENTS -debug -reg
   DEBUG_WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)

I'd be happy to help implement this should David, Bill, and others find it
to be a good idea.

PS: I think I can do it without boost this time ;)

-
Robert Dailey
--

Powered by www.kitware.com

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

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

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake