Re: [cmake-developers] Extending XCode scheme generation support

2017-10-23 Thread Steven Velez
Hi Gregor,

I know you are probably busy with other things, but do you see
anything in the discussion so far that should prevent an
implementation attempt?  I don't have a whole lot of time available to
work on this either, so progress will probably be slow with me
squeezing in work here and there, so I don't think there will be a
review burden soon.

Thanks,
Steven

On Sun, Oct 8, 2017 at 1:18 PM, Steven Velez <sbv1...@gmail.com> wrote:
> After spending some time trying to figure out how to affect the build
> "destination",  it seems that destinations associated with a given
> scheme are not influenced by anything beyond the targets referenced as
> build targets for the scheme.  In other words, if a scheme builds an
> iOS target, then the iOS destinations/devices/simulators will be
> present in the UI, and if it references a MacOS target, then the
> active computer will be available in the destinations UI.
>
> The options available in the scheme proper seem to be similar in
> either case, and the proposal so far is fairly agnostic to specific
> options, so I think the current proposal stands without modification
> in this respect.  Does this seem like a reasonable statement?
>
> This investigation did make me realize that each scheme can specify
> building more than one target, so I would revise my statement that the
> last target referencing a given scheme name should "win".   Instead, I
> think each target should be built by the given scheme, and the union
> of settings provided by each target should be present in the scheme.
> If multiple targets indicate a similar setting, then in this case, the
> last setting should win, and this should print a warning... but if
> order of processing the schemes/targets cannot match source order,
> then perhaps it should be noted that what is "last" cannot be
> guaranteed
>
> Thanks,
> Steven
>
>
> On Thu, Oct 5, 2017 at 9:26 AM, Steven Velez <sbv1...@gmail.com> wrote:
>> Thanks for the followup Gregor.
>>
>> One thing that concerns me about the property-centric approach is that
>> I can't think of a way to use properties for generating a custom
>> scheme that builds the ALL_BUILD target.  I would assume this would
>> run into the same issues and limitations that I have seen in google
>> searches with trying to control the the folder for the ALL_BUILD
>> target with the FOLDER target property (even though this would be a
>> Visual Studio concern).  It seems that is addressed now with the
>> *_TARGETS_FOLDER global properties, so maybe an analog can be
>> established?
>>
>> Regarding sequencing changes, do you mean to come up with a set of
>> smaller logical changes/MRs so that this isn't all dumped at once?  If
>> so, I think we could implement XCODE_SCHEME_NAME and a single
>> additional property without generator support, then add generator
>> support, then add the balance of the properties one-by-one.  Would
>> that make sense?
>>
>> I have to get more familiar with CMake's testing methodologies to have
>> any comment on that portion.
>>
>> If two targets specify the same schema name, then overwrite/accept
>> latest with a warning?
>>
>> Regarding ios builds or perhaps having multiple build devices (I have
>> seen some hand-made projects with 64-bit and 32-bit desktop clients
>> selectable), then I will also have to get back to you on that.  I was
>> thinking the property definitions were generic enough to handle any
>> needs... and I assumed that devices were handles with additional
>> scheme files, but I realize that was a bad assumption.
>>
>> Will try to have that thought out soon.
>>
>> Thanks,
>> Steven
>>
>> On Mon, Oct 2, 2017 at 9:05 AM, Gregor Jasny <gja...@googlemail.com> wrote:
>>> Hello Steven,
>>>
>>> On 9/22/17 3:36 AM, Steven Velez wrote:
>>>> # Property-Centric
>>>> In this proposal, the generation of the scheme files is customized 
>>>> primarily by
>>>> a user setting additional, specialized properties on a given target, which 
>>>> then
>>>> affect the generation of the scheme files associated with that target.
>>> thank you for working an the scheme proposal. I also believe that the
>>> property-centric approach is better suited and easier to implement than
>>> the file-centrix one.
>>>
>>> Next steps would be to sequence the necessary changes and define test
>>> cases. I could imagine that adding generator-expression support would be
>>> much harder to implement that other things.
>>>
>>> Things tha

Re: [cmake-developers] Extending XCode scheme generation support

2017-10-08 Thread Steven Velez
After spending some time trying to figure out how to affect the build
"destination",  it seems that destinations associated with a given
scheme are not influenced by anything beyond the targets referenced as
build targets for the scheme.  In other words, if a scheme builds an
iOS target, then the iOS destinations/devices/simulators will be
present in the UI, and if it references a MacOS target, then the
active computer will be available in the destinations UI.

The options available in the scheme proper seem to be similar in
either case, and the proposal so far is fairly agnostic to specific
options, so I think the current proposal stands without modification
in this respect.  Does this seem like a reasonable statement?

This investigation did make me realize that each scheme can specify
building more than one target, so I would revise my statement that the
last target referencing a given scheme name should "win".   Instead, I
think each target should be built by the given scheme, and the union
of settings provided by each target should be present in the scheme.
If multiple targets indicate a similar setting, then in this case, the
last setting should win, and this should print a warning... but if
order of processing the schemes/targets cannot match source order,
then perhaps it should be noted that what is "last" cannot be
guaranteed

Thanks,
Steven


On Thu, Oct 5, 2017 at 9:26 AM, Steven Velez <sbv1...@gmail.com> wrote:
> Thanks for the followup Gregor.
>
> One thing that concerns me about the property-centric approach is that
> I can't think of a way to use properties for generating a custom
> scheme that builds the ALL_BUILD target.  I would assume this would
> run into the same issues and limitations that I have seen in google
> searches with trying to control the the folder for the ALL_BUILD
> target with the FOLDER target property (even though this would be a
> Visual Studio concern).  It seems that is addressed now with the
> *_TARGETS_FOLDER global properties, so maybe an analog can be
> established?
>
> Regarding sequencing changes, do you mean to come up with a set of
> smaller logical changes/MRs so that this isn't all dumped at once?  If
> so, I think we could implement XCODE_SCHEME_NAME and a single
> additional property without generator support, then add generator
> support, then add the balance of the properties one-by-one.  Would
> that make sense?
>
> I have to get more familiar with CMake's testing methodologies to have
> any comment on that portion.
>
> If two targets specify the same schema name, then overwrite/accept
> latest with a warning?
>
> Regarding ios builds or perhaps having multiple build devices (I have
> seen some hand-made projects with 64-bit and 32-bit desktop clients
> selectable), then I will also have to get back to you on that.  I was
> thinking the property definitions were generic enough to handle any
> needs... and I assumed that devices were handles with additional
> scheme files, but I realize that was a bad assumption.
>
> Will try to have that thought out soon.
>
> Thanks,
> Steven
>
> On Mon, Oct 2, 2017 at 9:05 AM, Gregor Jasny <gja...@googlemail.com> wrote:
>> Hello Steven,
>>
>> On 9/22/17 3:36 AM, Steven Velez wrote:
>>> # Property-Centric
>>> In this proposal, the generation of the scheme files is customized 
>>> primarily by
>>> a user setting additional, specialized properties on a given target, which 
>>> then
>>> affect the generation of the scheme files associated with that target.
>> thank you for working an the scheme proposal. I also believe that the
>> property-centric approach is better suited and easier to implement than
>> the file-centrix one.
>>
>> Next steps would be to sequence the necessary changes and define test
>> cases. I could imagine that adding generator-expression support would be
>> much harder to implement that other things.
>>
>> Things that also should be considered are:
>> * differences between macOS and iOS when generating a scheme
>> * what should happen if two targets specify the same schema name
>>
>> Thanks,
>> Gregor
-- 

Powered by 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-developers


Re: [cmake-developers] Extending XCode scheme generation support

2017-10-05 Thread Steven Velez
Thanks for the followup Gregor.

One thing that concerns me about the property-centric approach is that
I can't think of a way to use properties for generating a custom
scheme that builds the ALL_BUILD target.  I would assume this would
run into the same issues and limitations that I have seen in google
searches with trying to control the the folder for the ALL_BUILD
target with the FOLDER target property (even though this would be a
Visual Studio concern).  It seems that is addressed now with the
*_TARGETS_FOLDER global properties, so maybe an analog can be
established?

Regarding sequencing changes, do you mean to come up with a set of
smaller logical changes/MRs so that this isn't all dumped at once?  If
so, I think we could implement XCODE_SCHEME_NAME and a single
additional property without generator support, then add generator
support, then add the balance of the properties one-by-one.  Would
that make sense?

I have to get more familiar with CMake's testing methodologies to have
any comment on that portion.

If two targets specify the same schema name, then overwrite/accept
latest with a warning?

Regarding ios builds or perhaps having multiple build devices (I have
seen some hand-made projects with 64-bit and 32-bit desktop clients
selectable), then I will also have to get back to you on that.  I was
thinking the property definitions were generic enough to handle any
needs... and I assumed that devices were handles with additional
scheme files, but I realize that was a bad assumption.

Will try to have that thought out soon.

Thanks,
Steven

On Mon, Oct 2, 2017 at 9:05 AM, Gregor Jasny <gja...@googlemail.com> wrote:
> Hello Steven,
>
> On 9/22/17 3:36 AM, Steven Velez wrote:
>> # Property-Centric
>> In this proposal, the generation of the scheme files is customized primarily 
>> by
>> a user setting additional, specialized properties on a given target, which 
>> then
>> affect the generation of the scheme files associated with that target.
> thank you for working an the scheme proposal. I also believe that the
> property-centric approach is better suited and easier to implement than
> the file-centrix one.
>
> Next steps would be to sequence the necessary changes and define test
> cases. I could imagine that adding generator-expression support would be
> much harder to implement that other things.
>
> Things that also should be considered are:
> * differences between macOS and iOS when generating a scheme
> * what should happen if two targets specify the same schema name
>
> Thanks,
> Gregor
-- 

Powered by 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-developers


Re: [cmake-developers] Extending XCode scheme generation support

2017-09-29 Thread Steven Velez
Hi guys,

Any thoughts on this?

TL;DR Version:

We can add some target properties that the Xcode generator uses to
customize schemes:

* XCODE_SCHEME_NAME
* XCODE_SCHEME_LAUNCH_OPTS
* XCODE_SCHEME_LAUNCH_ADTL_OPTS
* XCODE_SCHEME_LAUNCH_RUNNABLE
* XCODE_SCHEME_LAUNCH_ARGUMENTS
* XCODE_SCHEME_LAUNCH_ENVIRONMENT

OR

The configure_file function can be augmented to be runnable during
generation so that it can process generator expressions which are
defined to support this scheme-customization workflow.

Thanks,
Steven


On Thu, Sep 21, 2017 at 9:36 PM, Steven Velez <sbv1...@gmail.com> wrote:
> Hello Again,
>
> Sorry for the delay.  After some consideration and investigation, I have the
> following two proposals:
>
> # Property-Centric
> In this proposal, the generation of the scheme files is customized primarily 
> by
> a user setting additional, specialized properties on a given target, which 
> then
> affect the generation of the scheme files associated with that target.  Scheme
> files are persisted as xml, and currently, each scheme file contains six
> elements directly underneath the root element which correspond to each of the
> [scheme actions](http://help.apple.com/xcode/mac/8.3/#/devd9c8382e7) available
> in the scheme editor.
>
> To this end, with one exception, the specialized properties defined for this
> purpose will follow the convention `XCODE_SCHEME__` 
> where
> `` may be one of `BUILD`, `TEST`, `LAUNCH`, `PROFILE`, `ANALYZE`,
> `ARCHIVE` and `` will be appropriate to the particular item being
> configured and detailed further below.  The exception to this convention is 
> the
> `XCODE_SCHEME_NAME` property which will be used to override the default name 
> of
> the generated scheme that by default matches the name of the target it is
> associated to. It can even be set to the empty string in order to completely
> disable scheme generation for select targets.
>
> These properties will be ignored by all generators but the Xcode generator.
>
> ## CONFIGIDs
> Being unable to find official, public documentation on the design and format 
> of
> xcode scheme files, experimental analysis has revealed that that there are
> approximately three classes of configuration methods used in each action's xml
> element.  The first class of options are specified as attributes of the 
> action's
> xml element.  The second class of options are specified as elements providing
> name/value pairs via attributes and are are children of an `AdditionalOptions`
> element in the action element, and the final class is everything else and 
> which
> has a different format in each case.
>
> This proposal is primarily concerned with extending and controlling the
> configuration of the Launch action and therefore includes CONFIGIDs that apply
> to that action, though it is possible and in some cases likely that they will
> have general utility in most other actions.  These are as follows:
>
> * `OPTS` - Properties with this config id will be a CMake list of name/value
> pairs where the names and values are strings separated by the first embedded
> equals sign. Once parsed, the names will be used to identify xml attributes to
> set on the action element and the values will of course be the values set on
> those attributes.
> * `ADTL_OPTS` - Like with the `OPTS` config id, this will be a list of
> name/value pairs.  However, the names and values will be used to define xml
> elements of the form ` isEnabled="YES"/>` which are then added to the `` element
> of the current action.  Note, that there are no provisions for controlling the
> `isEnabled` state of an option besides those programmatic elements of CMake
> which would make it possible to specify (or not) a given additional option.
> It is unclear what the semantic difference is between "options" and
> "additional options" as there is no clear distinction in the Xcode UI.
> * `RUNNABLE` - This is a simple string which can be interpreted as a target
> reference if it matches the name of an executable target in the project, or a
> literal path to an executable on the file system otherwise.  In either case,
> it specifies the executable which will be run when the scheme is active.  When
> no `RUNNABLE` target is specified, the current, default runnable is used.
> * `ARGUMENTS` - Is a CMake list of strings that each define an element of the
> form `` to add to
> the `` element of the current action.  As with
> `ADTL_OPTS`, `isEnabled` cannot be changed. These values are passed to the
> executable specified by `RUNNABLE` as command line arguments.
> * `ENVIRONMENT` - This is similar to `ADTL_OPTS` except the elements created 
> are
> of the form ` isEnabled="YES"/>` and they are added to the `` element

Re: [cmake-developers] Extending XCode scheme generation support

2017-09-21 Thread Steven Velez
guration.  The value that
`$` evaluates to for `XCODE_SCHEME_NAME` should persist for every
evaluation of `$` while a given scheme file is being generated.  If
`$` is used in a property for which `$` was not also indicated
in `XCODE_SCHEME_NAME`, the results are undefined.

## Examples

Configure xcode to generate a scheme that will aid in debugging a cli program's
help option
```
add_executable(simple_tool simpletool.c)
set_target_properties(simple_tool
XCODE_SCHEME_LAUNCH_ARGUMENTS --help)
```

Configure schemes that build specific shared libraries to execute a common
executable target.
```
add_library(tools1 SHARED tools1.c)
add_library(tools2 SHARED tools2.c)
add_executable(main main.c)
target_link_libraries(main tools1 tools2)

set_target_properties(tools1 tools2
XCODE_SCHEME_NAME "$|$"
XCODE_SCHEME_LAUNCH_OPTS "buildConfiguration=$"
XCODE_SCHEME_LAUNCH_RUNNABLE main)
```

Enable test tooling built in to the app via an environment variable and coax the
linker in to loading the Qt debug libraries
```
add_executable(qtapp qtmain.cpp)
set(_env
"ENABLE_TEST_TOOLBAR=1"
"$<$:DYLD_IMAGE_SUFFIX=_debug>")
set_target_properties(qtapp
XCODE_SCHEME_NAME "qtapp -- $"
XCODE_SCHEME_ENVIRONMENT ${_env})
```

# Scheme-File-centric
While the property-centric proposal described above seems relatively capable,
and it follows conventions established by the `MACOSX_*`, `VS_*`, `XCODE_*`
properties already defined and others, they seem fairly invasive, high
maintenance, and they do not allow schemes targeting built-in projects (such as
ALL_BUILD) to be customized.  Further, it seems as though scheme/target
relationships are basically 1:1.  Apart from configuration variants, it is not
possible to have more than one scheme reference a given target as a build
dependency, and it is certainly not possible to have the build action of a
scheme build more than a single top-level target.

I believe all of these issues could be addressed and additional leverage given
to users to utilize the full abilities of schemes now and in the future, by
adding two additional CMake features.

The first is to add a flag to `configure_file` that will cause it to run during
the generation phase and therefore be able to expand generator expressions.

The second is to define an xcode-specific read-only target property:
`XCODE_BLUEPRINT_ID`.

Once these constructs are available, a user could configure files with bits of
xml that look like this:
```xml

```

I believe that the fact that the blue print id for a given target changes on
each generation, is the only thing preventing scheme files from being manually
(and flexibly) created during the configure phase.

In full disclaimer: I have not investigated the feasibility of implementing such
a solution

Thanks,
Steven

On Fri, Sep 15, 2017 at 11:48 AM, Steven Velez <sbv1...@gmail.com> wrote:
> Sure.. but I haven't even thought about it much yet.  So when that has
> happened, I'll make a more formal proposal.
>
> Thanks,
> Steven
>
> On Fri, Sep 15, 2017 at 11:04 AM, Brad King <brad.k...@kitware.com> wrote:
>>
>> On 09/15/2017 10:55 AM, Steven Velez wrote:
>> > I am assuming that the lack of response indicates that there has not
>> > been much thought or interest expressed along this dimension of the
>> > feature.
>> >
>> > Would a better way to approach this be to implement a prototype and
>> > create a WIP MR?
>>
>> Can you post a more specific proposal here?  E.g. with proposed
>> target properties to control it and show some examples.
>>
>> Thanks,
>> -Brad
>
>
-- 

Powered by 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-developers


Re: [CMake] setting/removing compiler flag (-g) for a single project directory

2017-09-16 Thread Steven Velez
Gotcha...  yeah target definitions are available globally, in all
directories after they are defined (source order is important).  I had
never thought of this as a global variable or constant, but I guess in a
way it is.
In that way, then I would think it is a sort of special case...  but I
suppose the experts should chime in.

Steven

On Sat, Sep 16, 2017 at 4:07 AM, René J.V. Bertin <rjvber...@gmail.com>
wrote:

> On Friday September 15 2017 16:51:24 Steven Velez wrote:
>
> >Yeah... I didn't mean to respond personally... i didn't realize my client
> >was doing that and not the list.
>
> OK, replying back to the list then.
>
> >What do you mean by "variables related to targets have global scope"?
>
> I probably could have been a bit less vague. Defining a target in a
> subdirectory sets something that behaves like a global variable (pardon,
> constant :)), at least for libraries. That's the whole point of that
> common_dir subtree: it defines library targets which are then used for
> linking the plugin.
>
> R.
>
> >
> >On Fri, Sep 15, 2017 at 3:44 PM, René J.V. Bertin <rjvber...@gmail.com>
> >wrote:
> >
> >> On Friday September 15 2017 15:34:34 Steven Velez wrote:
> >>
> >> Logically that's what I'd expect, but then the variables related to
> >> targets have global scope, variables set in a module directories too
> etc. I
> >> preferred to ask, so thanks :)
> >>
> >> R.
> >>
> >> >All directories in cmake have their own scopes which are initialized by
> >> the
> >> >scope of the parent directory.
> >> >
> >> >So, if you set the variables you wish to set in CMakeLists.txt of
> >> >common_libs, they should not influence the builds in the plugin
> directory,
> >> >but will influence the builds in that directory and subdirectories.
> >> >
> >> >https://cmake.org/cmake/help/v3.9/manual/cmake-language.7.
> >> html#cmake-language-variables
> >> >
> >> >For more info.
> >> >
> >> >Steven
>
> --
>
> Powered by 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

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

Re: [cmake-developers] Extending XCode scheme generation support

2017-09-15 Thread Steven Velez
Sure.. but I haven't even thought about it much yet.  So when that has
happened, I'll make a more formal proposal.

Thanks,
Steven

On Fri, Sep 15, 2017 at 11:04 AM, Brad King <brad.k...@kitware.com> wrote:

> On 09/15/2017 10:55 AM, Steven Velez wrote:
> > I am assuming that the lack of response indicates that there has not
> > been much thought or interest expressed along this dimension of the
> feature.
> >
> > Would a better way to approach this be to implement a prototype and
> create a WIP MR?
>
> Can you post a more specific proposal here?  E.g. with proposed
> target properties to control it and show some examples.
>
> Thanks,
> -Brad
>
-- 

Powered by 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-developers

Re: [cmake-developers] Extending XCode scheme generation support

2017-09-15 Thread Steven Velez
Hello,

I am assuming that the lack of response indicates that there has not been
much thought or interest expressed along this dimension of the feature.

Would a better way to approach this be to implement a prototype and create
a WIP MR?

Thanks,
Steven


On Fri, Sep 8, 2017 at 12:29 PM, Steven Velez <sbv1...@gmail.com> wrote:

> Hello All,
>
> I recently noticed that 3.9.1 added the ability for the XCode generator to
> also generate scheme files.  This is great as we have been post processing
> generator output to add schemes according to our standards, but are
> discovering various issues with this approach.
>
> However, the current scheme generation appears to lack a couple of
> abilities we would require to replace our custom scripts.  Primarily, we
> need more flexibility over what goes in a particular scheme's launch
> configuration.
>
> I have searched the lists and google to try to find discussions on the
> intended direction of this feature, but could not find any.
>
> If I were to be able to contribute to this, would there be some sort of
> guidance available around how best to expose additional configurability to
> a user?  My immediate thoughts are just that we would need to define/use
> additional target properties, but is there any sort of recommended naming
> convention/scheme or structure that is already existing for mapping sets of
> properties in to the more structured format of scheme xml files.
>
> Thanks,
> Steven
>
-- 

Powered by 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-developers

[cmake-developers] Extending XCode scheme generation support

2017-09-08 Thread Steven Velez
Hello All,

I recently noticed that 3.9.1 added the ability for the XCode generator to
also generate scheme files.  This is great as we have been post processing
generator output to add schemes according to our standards, but are
discovering various issues with this approach.

However, the current scheme generation appears to lack a couple of
abilities we would require to replace our custom scripts.  Primarily, we
need more flexibility over what goes in a particular scheme's launch
configuration.

I have searched the lists and google to try to find discussions on the
intended direction of this feature, but could not find any.

If I were to be able to contribute to this, would there be some sort of
guidance available around how best to expose additional configurability to
a user?  My immediate thoughts are just that we would need to define/use
additional target properties, but is there any sort of recommended naming
convention/scheme or structure that is already existing for mapping sets of
properties in to the more structured format of scheme xml files.

Thanks,
Steven
-- 

Powered by 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-developers

[CMake] ZERO_CHECK generation and Xcode

2017-03-29 Thread Steven Velez
If I understand correctly the purpose of the ZERO_CHECK target is to update
the generated project files when necessary.

That's fine, but I have noticed on Xcode (8.2) that when ZERO_CHECK runs
and updates the project, it causes the xcode build to abort.
Unfortunately, it seems this build abort happens before the xcode project
regeneration has a chance to complete and update/touch
CMakeFiles/cmake.check_cache, so once the target is out of date, it pretty
much stays that way, and the builds are always (or least frequently)
subsequently aborted because of an update to generated project files.

If I go in to the terminal and manually execute "make -f ReRunCMake.make"
then the process completes and the ZERO_CHECK target is good, and it does
not run any more.

Is there any known way to deal with this other than by specifying
CMAKE_SUPRRESS_REGENERATION:BOOL=YES ?

Thanks,
Steven
-- 

Powered by 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

Re: [CMake] What is the purpose of cmake's -N parameter?

2016-05-19 Thread Steven Velez
Well, sent that a little too soon.  I just realized that in my testing, I
wasn't specifying the source directory (which is an error) and when I do
"-N" does affect how "-L" behaves...

However, -L still leaves a lot of cache variables out (as does -LA), and I
would like to see the value of CMAKE_PROJECT_NAME.

Any tips?

Thanks,
Steven


On Thu, May 19, 2016 at 2:16 PM, Steven Velez <sbv1...@gmail.com> wrote:

> The docs say:
>
> View mode only.
>>
>> Only load the cache. Do not actually run configure and generate steps.
>>
>
> But I wonder what you can do with cmake after that to view the cache?
>
> The -L parameter seems to display the same set of variables with or
> without this set, and scripts run in process script mode still seem to have
> no access to cache values.
>
> So, what's left?
>
> To state my problem a little more generally I would like a way to discover
> the project name set in a binary dir by it's associated CMakeLists.txt file.
>
> Is this possible without writing my own code to parse either the
> CMakeLists.txt or CMakeCache.txt?
>
> Thanks,
> Steven
>
-- 

Powered by 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

[CMake] What is the purpose of cmake's -N parameter?

2016-05-19 Thread Steven Velez
The docs say:

View mode only.
>
> Only load the cache. Do not actually run configure and generate steps.
>

But I wonder what you can do with cmake after that to view the cache?

The -L parameter seems to display the same set of variables with or without
this set, and scripts run in process script mode still seem to have no
access to cache values.

So, what's left?

To state my problem a little more generally I would like a way to discover
the project name set in a binary dir by it's associated CMakeLists.txt file.

Is this possible without writing my own code to parse either the
CMakeLists.txt or CMakeCache.txt?

Thanks,
Steven
-- 

Powered by 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

Re: [CMake] VERSION and SOVERSION target properties on OS X

2014-10-14 Thread Steven Velez
Ah... good idea.  I should have considered that.  Thanks.

On Mon, Oct 13, 2014 at 11:50 AM, Clinton Stimpson clin...@elemtech.com
wrote:

 On Friday, October 10, 2014 12:43:53 PM Steven Velez wrote:
  Forgive me if this question has been answered before but with CMAKE
 2.8.12
  (I believe) xcode builds on OS X started generating shared libraries
  decorated with the VERSION target property and symlinked by a bare
 dylib
  name and one decorated with the SOVERSION.
 
  I understand this is common practice on many unixen, but it is
 complicating
  our deployment and update logic (not cpack, sorry to say).
 
  Our application is fairly self-contained, so we would like to continue
  generating only those bare-named dylibs, but we need to keep the
 SOVERSION
  set to that the embedded compatibility version remains how we want it.
 
  I have not found a combination of values to these properties that does
 what
  I would like, so I was wondering if there was a way to get the old
  behavior perhaps with a policy or something?
 
  If there isn't a way to do it now, would there be an acceptable way to
  specify this behavior that would be accepted as a patch?
 
  Thanks,
  Steven

 That change was made to make the Xcode and Makefile generators consistent.

 To get what you want now (with both the older and newer CMake versions),
 you
 can remove the SOVERSION property and set the LINK_FLAGS property to pass -
 compatibilty_version to the linker.

 Clint

-- 

Powered by 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

[CMake] VERSION and SOVERSION target properties on OS X

2014-10-10 Thread Steven Velez
Forgive me if this question has been answered before but with CMAKE 2.8.12
(I believe) xcode builds on OS X started generating shared libraries
decorated with the VERSION target property and symlinked by a bare dylib
name and one decorated with the SOVERSION.

I understand this is common practice on many unixen, but it is complicating
our deployment and update logic (not cpack, sorry to say).

Our application is fairly self-contained, so we would like to continue
generating only those bare-named dylibs, but we need to keep the SOVERSION
set to that the embedded compatibility version remains how we want it.

I have not found a combination of values to these properties that does what
I would like, so I was wondering if there was a way to get the old
behavior perhaps with a policy or something?

If there isn't a way to do it now, would there be an acceptable way to
specify this behavior that would be accepted as a patch?

Thanks,
Steven
-- 

Powered by 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

[CMake] Properties on Projects ( was: Enhancing the Visual Studio Generators' Source Control integration )

2011-11-02 Thread Steven Velez
Trying again more directly.  Sorry for the chattiness.

Is there a good way to allow users to set properties on projects that
generators can read.

I was thinking to use standardized global properties e.g.) Project
Name_VS_SCC_LOCALPATH, however the existing properties like this (
projectname_SOURCE_DIR and projectname_BINARY_DIR ) are implicitly
read-only.  Would there be a reason to avoid my proposal?

Thanks,
Steven

On Tue, Nov 1, 2011 at 12:34 AM, Steven Velez sbv1...@gmail.com wrote:
 Hi All,

 We have noticed, that using the VS_SCC_* target properties, we can
 bind to a perforce SCM server.  However, the way that SCC works the
 perforce plugin has to prompt the user for connection information.
 When we were doing this with hand-made visual studio solutions, we
 would only be prompted once when the workspace was fresh and clean,
 and the information would be retained thereafter.  With our
 CMake-generated solutions, we are prompted on every invocation of
 visual studio.  We'd like to get back to the fewer prompts workflow.

 After much research and trial and error, we have discovered that this
 seems to be because the bindings created by cmake are stored in the
 visual studio project files...and only there.  It seems that a more
 complete binding also records some SCC-related properties in the
 solution file...

 Therefore, I started hacking on the visual studio generator to try and
 decipher how this functionality would be added to cmake, and made good
 progress.  However, there are some solution file properties related to
 SCC that must be recorded for the solution itself.  For most entries,
 I can just query the targets' VS_SCC_ properties, but there are no
 such properties for the solution/project.   What's more, is there is
 no existing precedent, that I can find, for user-specified project
 properties.  So I am not sure how I would be able to give the user
 control over what these properties may be.  In my scenario, with the
 perforce SCC plugin, I _could_ get the necessary properties form the
 first target, but I doubt this is the general solution otherwise there
 is simply too much redundancy in the protocol/format.

 Long question short... is there an existing, reliable way for the user
 to provide per-project properties that the generator can get at?

 Thanks,
 Steven

--

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] How the heck does one set options?

2011-11-02 Thread Steven Velez
Just a guess, but the docs for option state:

  option(option_variable help string describing option
 [initial value])

  Provide an option for the user to select as ON or OFF. If no initial
value is provided, OFF is used.

In this description is not optional, but the initial value is.  In the
usage presented, I believe ON may be interpreted as the doc string
and the default value is being taken?  Maybe Tim made a mistake in his
reply.

I don't know personally, I've never used this.

Steven


On Wed, Nov 2, 2011 at 9:36 PM, Dan Kegel d...@kegel.com wrote:
 On Wed, Nov 2, 2011 at 6:21 PM, Tim Gallagher tim.gallag...@gatech.edu 
 wrote:
 Using set() as you have done only sets the value in the current scoping 
 unit. If you did:

 set(gtest_force_shared_crt ON CACHE INTERNAL )

 then it will be set to ON and hidden from the GUI display.

 If it will always be a bool and you want it displayed on the GUI, you can 
 also do:

 option(gtest_force_shared_crt ON)

 Tried it, no change, still broken.

 $ grep gtest_force_shared_crt CMakeLists.txt build/CMakeCache.txt
 CMakeLists.txt:option(gtest_force_shared_crt ON)
 build/CMakeCache.txt:gtest_force_shared_crt:BOOL=OFF

 --trace shows

 CMakeLists.txt(23):  option(gtest_force_shared_crt ON )
 gtest/CMakeLists.txt(14):  option(gtest_force_shared_crt Use shared
 (DLL) run-time lib even when Google Test is built as static lib. OFF )

 So, now what?  How does one set an option declared by a subdirectory
 before entering that subdirectory?  Lots of people use gtest, surely
 someone has run into this before.
 - Dan
 --

 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] SCC bindings missing AUXPATH support?

2011-11-01 Thread Steven Velez
Just to be clear, I am not advocating having to deal with the perforce
SCC integration dialog for every project in the solution.  In our set
up, we need to deal with it once for the solution... without having
access to AuxPath.  However, I do imagine, that it probably has
something to do with where the local path ends up pointing to and
whether your solution pulls projects from different P4 work-spaces,
though I have never done that myself personally.

I suggested making AuxPath optional because the binding will work
without that property, and it will work efficiently if carefully
crafted.  I can not say that a binding will succeed if any of the
other properties are omitted, though perhaps they might with some SCC
providers... I didn't write the original binding logic, I don't use
other providers, and I certainly have never seen any documentation on
the Visual Studio SCC interface... I've heard you need to sign an NDA
with Microsoft for that or something.

As far as there being logic to using a relative path as opposed to an
absolute one, no... I can't say that I know what it is if there is
any.  Again, I don't fully understand how SCC integration works.  I
can only say that I have tried relative paths, and they work better
for me than the report you provided originally.  Also, if I set up the
bindings after solution generation from within visual studio 2010,
that is what the IDE and/or perforce puts there.

Steven

On Tue, Nov 1, 2011 at 7:40 AM, Robert Dailey rcdai...@gmail.com wrote:
 On Mon, Oct 31, 2011 at 11:59 PM, Steven Velez sbv1...@gmail.com wrote:

 Hi Robert,

 I reviewed the patch, and I am not sure vsAuxPath should be a
 requirement.  As I stated earlier, we've gotten the binding to work
 acceptably without it and I assume others have as well.  Further, some
 users may prefer to enter their connection information in to the
 perforce dialog on first invocation instead of having to configure the
 cmake cache to setup their bindings.

 I never said it wouldn't work without AuxPath, I am just stating that it
 works better with it. AuxPath is where the connection string is placed.
 Each person that uses CMake is different and I see no reason why AuxPath
 should not be an available option to the user, especially since I've already
 done the work of adding it in.
 If users want to continuously press OK on the perforce connection dialog
 for every project opened in the solution, that's fine by me but I certainly
 don't want to deal with that annoying behavior.


 To be clear, I have no objections to adding AuxPath support (not that
 my objections count for anything around here).  Its that just as it
 stands now, if you don't supply it, you won't get any bindings.

 I can easily make it optional. I was just following the design already in
 place, which forces all parameters to be required.


 Also, you may have better results getting your patch integrated by
 opening a defect in cmake's bug tracker and attaching the patch to
 that.  The preferred patch generation method is also described here:
 http://www.mail-archive.com/cmake@cmake.org/msg36619.html

 Thanks for the info!!


 By the way, as I stated in an earlier mail, if you wish to pursue this
 further, if you change C:/Code/work/sandbox to ..\..\.. where that
 path points to C:\Code\work\sandbox relative to the target being
 bound, you should have better results.

 I read your last email but I fail to see the logic behind why a relative
 path works better than an absolute one. Based on my tests, using an absolute
 path has not resulted in any prompts to save the solution/projects.
--

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] Source control bindings feature in CMake needs better documentation

2011-10-31 Thread Steven Velez
Hi Robert,

I don't pretend to know everything there is to know about Visual
Studio SCC integration, but I have gotten this to work before with a
bit of trial and error, and reverse-engineering the entries visual
studio creates for these properties.

To answer your most recent question, there is no way to specify
perforce connection/user/workspace information in the cmake file as
these properties are just forwarded to the generated .vcproj files,
and there is no way to set the parameters you are looking for there.

In your examples, [I have found that] the values you have for project
name and provider are correct when hooking up to perforce. However, I
think you are a bit off the mark on the first parameter to
set_target_properties.  This is supposed to be the name of the
_target_ you are binding to scc (the result of a add_executable,
add_library command etc.) not the project name.   In the cmake-VS
mapping, a cmake target is a VS project, and a cmake project is a VS
solution (so if you have a project command for every target, you can
most likely start simplifying things there). I mention this because it
may have something to do with the excessive prompting you are
getting... though reviewing my team's integration shows that we are
doing this same thing.  Another thing you might want to adjust is the
local path I have had the most success with passing a path
relative to the target's binary directory using the target path format
(in this case, always windows... i.e. use back slashes.  To compute
this dynamically, you may have success using file(RELATIVE_PATH) with
CMAKE_CURRENT_BINARY_DIR, and CMAKE_SOURCE_DIR.  In VS2010, at least,
we have found that in order to avoid being prompted to save on exit,
we must strip trailing slashes from the path we build in this way.

Following this pattern, we have gotten to the point where we are
prompted once for port and workspace/clientspec on each invocation of
visual studio, but it is only once and not once per project in the
solution.

Steven

On Mon, Oct 31, 2011 at 2:36 PM, Robert Dailey rcdai...@gmail.com wrote:
 While waiting on a response I did some experimentation:

 set_target_properties(
 ${project_name} PROPERTIES
 VS_SCC_LOCALPATH ${CMAKE_SOURCE_DIR}
 VS_SCC_PROJECTNAME Perforce Project
 VS_SCC_PROVIDER MSSCCI:Perforce SCM
 )
 This seems to work in VS 2003 but the annoying thing is that when I open the
 solution, every single project (about 120 of them) each prompt me for my
 username, workspace, and server URL to perforce server.
 Is there no way to specify this connection/user/workspace information in
 CMake so that when I open the solution it already knows this stuff?
 -
 Robert Dailey


 On Mon, Oct 31, 2011 at 12:24 PM, Robert Dailey rcdai...@gmail.com wrote:

 Hey guys,
 Our team is running Perforce here at work and I want to setup any Visual
 Studio projects generated to use source control bindings for Perforce.
 The documentation for VS_SCC_PROJECTNAME, VS_SCC_LOCALPATH,
 VS_SCC_PROVIDER is pretty bad and I really have no clue on how to use these.
 Could someone explain what each is and possibly provide some examples on how
 they are used for Perforce?
 Thanks!!

 -
 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


[CMake] Enhancing the Visual Studio Generators' Source Control integration

2011-10-31 Thread Steven Velez
Hi All,

We have noticed, that using the VS_SCC_* target properties, we can
bind to a perforce SCM server.  However, the way that SCC works the
perforce plugin has to prompt the user for connection information.
When we were doing this with hand-made visual studio solutions, we
would only be prompted once when the workspace was fresh and clean,
and the information would be retained thereafter.  With our
CMake-generated solutions, we are prompted on every invocation of
visual studio.  We'd like to get back to the fewer prompts workflow.

After much research and trial and error, we have discovered that this
seems to be because the bindings created by cmake are stored in the
visual studio project files...and only there.  It seems that a more
complete binding also records some SCC-related properties in the
solution file...

Therefore, I started hacking on the visual studio generator to try and
decipher how this functionality would be added to cmake, and made good
progress.  However, there are some solution file properties related to
SCC that must be recorded for the solution itself.  For most entries,
I can just query the targets' VS_SCC_ properties, but there are no
such properties for the solution/project.   What's more, is there is
no existing precedent, that I can find, for user-specified project
properties.  So I am not sure how I would be able to give the user
control over what these properties may be.  In my scenario, with the
perforce SCC plugin, I _could_ get the necessary properties form the
first target, but I doubt this is the general solution otherwise there
is simply too much redundancy in the protocol/format.

Long question short... is there an existing, reliable way for the user
to provide per-project properties that the generator can get at?

Thanks,
Steven
--

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] SCC bindings missing AUXPATH support?

2011-10-31 Thread Steven Velez
Hi Robert,

I reviewed the patch, and I am not sure vsAuxPath should be a
requirement.  As I stated earlier, we've gotten the binding to work
acceptably without it and I assume others have as well.  Further, some
users may prefer to enter their connection information in to the
perforce dialog on first invocation instead of having to configure the
cmake cache to setup their bindings.

To be clear, I have no objections to adding AuxPath support (not that
my objections count for anything around here).  Its that just as it
stands now, if you don't supply it, you won't get any bindings.

Also, you may have better results getting your patch integrated by
opening a defect in cmake's bug tracker and attaching the patch to
that.  The preferred patch generation method is also described here:
http://www.mail-archive.com/cmake@cmake.org/msg36619.html

By the way, as I stated in an earlier mail, if you wish to pursue this
further, if you change C:/Code/work/sandbox to ..\..\.. where that
path points to C:\Code\work\sandbox relative to the target being
bound, you should have better results.

Thanks,
Steven

On Mon, Oct 31, 2011 at 8:20 PM, Robert Dailey rcdai...@gmail.com wrote:
 I forgot to explain why I made the change to begin with. Basically this all
 comes down to Perforce binding support. SccAuxPath is used to specify the
 Perforce connection string. Without this, each project opened will prompt
 the user for the information via modal dialog. This gets very annoying...
 Here is an example of how I have setup each of my projects:
 set_target_properties(
 ${project_name} PROPERTIES
 VS_SCC_AUXPATH
 P4SCC#${PERFORCE_SERVER}##${PERFORCE_USER}##${PERFORCE_WORKSPACE}
 VS_SCC_LOCALPATH ${CMAKE_SOURCE_DIR}
 VS_SCC_PROJECTNAME Perforce Project
 VS_SCC_PROVIDER MSSCCI:Perforce SCM
 )
 All of the PERFORCE_ variables are cache variables, so that the user can
 specify their credentials, server, and workspace. These are all formatted
 into the connection string perforce expects.
 The resulting XML in the VCPROJ looks like so:
 SccProjectName=Perforce Project
 SccLocalPath=C:/Code/work/sandbox
 SccAuxPath=P4SCC#perforce.mycompany.com:3666##rdailey##rdailey-t510-sandbox
 SccProvider=MSSCCI:Perforce SCM
 When I open the generated solution, all projects load perfectly with no
 prompts and everything is binded to source control :)
 -
 Robert Dailey


 On Mon, Oct 31, 2011 at 7:06 PM, Robert Dailey rcdai...@gmail.com wrote:

 I fiddled around with TortoiseGit and managed to create the patch. It is
 attached.
 Please integrate this into your repository so it is included in version
 2.8.7 :)

 -
 Robert Dailey


 On Mon, Oct 31, 2011 at 5:41 PM, Robert Dailey rcdai...@gmail.com wrote:

 I have added source code support for this myself. I updated the following
 files:
 cmLocalVisualStudio7Generator.cxx
 cmLocalVisualStudio10TargetGenerator.cxx
 The existing SCC support code was already in these files, I just added
 the SccAuxPath support to it.
 I'm not an expert at creating patch files outside of TortoiseSVN on
 Windows, so could someone explain how to create a patch file for these on
 Windows 7? Also how would you like me to deliver the code? I hope to see it
 introduced in version 2.8.7
 Thanks.

 -
 Robert Dailey


 On Mon, Oct 31, 2011 at 4:10 PM, Robert Dailey rcdai...@gmail.com
 wrote:

 There are actually 4 SCC related key/value pairs used in VS2003 VCPROJ
 files:
 SccProjectName=SAK
 SccAuxPath=SAK
 SccLocalPath=SAK
 SccProvider=SAK
 CMake supports these 3 via set_target_properties():
 VS_SCC_LOCALPATH
 VS_SCC_PROJECTNAME
 VS_SCC_PROVIDER
 Apparently one more is needed to support SccAuxPath:
 VS_SCC_AUXPATH
 Can someone add support for this? Thanks.

 -
 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


[CMake] Announcement: Visual Studio extension for editing CMake files available.

2011-10-18 Thread Steven Velez
Hello All,

This is a one time message to publicize the availability of a project
of my own creation that will add CMake language-specific features to
visual studio.

The project home page is hosted on google code:
http://code.google.com/p/vissemee/

I have just made the first binary build available, so I welcome all
CMakers who prefer to spend most of their time in Visual Studio (2010
and above only... sorry) to try it out and let me know how it works
out for them.

As I said before, this is a one time announcement, and if there are
any follow-ups or issues, please do not clutter the cmake list.  A
google group has been establish, and you can sign up for membership
there for further discussion.

https://groups.google.com/forum/?hl=en#!forum/vissemee-discussion

It's been empty for months, so it would be nice to get SOME traffic :)

Thanks,
Steven
--

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] Bug fix requests for the *next* release of CMake...

2011-07-28 Thread Steven Velez
http://public.kitware.com/Bug/view.php?id=12299

___
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] Building a MS COM Dll with Cmake

2011-06-30 Thread Steven Velez
Since no one has yet replied, I will comment that this workflow is
much like what Qt does with the moc (meta-object-compiler) and uic
tools.  Looking at the FindQt4.cmake and the referenced
Qt4Macros.cmake  files, it seems like these could provide some
examples to follow...

... though its true they are not structured for instruction.

Steven

On Thu, Jun 30, 2011 at 5:17 AM, Gerhard Gappmeier
gerhard.gappme...@ascolab.com wrote:
 Hi

 I'm working on a project which is completely portable,
 except of one COM wrapper Dll which should be built only on windows.

 To be consistent with the other parts I also want to build this COM Dll
 using CMake
 like I do we the rest of the project.

 However I don't know how to do this MS magic with CMake.

 1.) How do I add a MIDL buildstep?
 VS normally creates a Typelibrary (TLB) from the IDL file
 and links this as resource into the DLL.
 This is necesarry later on for Dll registration.

 2.) Also the foo_i.c and foo.h files are generated from foo.idl by the
 midl compiler
 which must be compiled with the project.

 3.) There are additional rgs-files (registry resources) to add.
 How do I do that?

 4.) Also the version info must be compiled into the dll. Based on a .rc file
 which includes all vendor info.
 So set_target_properties VERSION would not be sufficient.

 It would be great if somebody has an example for a simple COM Dll project.
 I hope this is possible.

 --
 mit freundlichen Grüßen / best regards

 Gerhard Gappmeier
 ascolab GmbH - automation systems communication laboratory
 Tel.: +49 9131 691 123
 Fax: +49 9131 691 128
 Web: http://www.ascolab.com
 GPG-KeyId: 5AAC50C4
 GPG-Fingerprint: 967A 15F1 2788 164D CCA3 6C46 07CD 6F82 5AAC 50C4

 --
 ascolab GmbH
 Geschäftsführer: Gerhard Gappmeier, Matthias Damm, Uwe Steinkrauß
 Sitz der Gesellschaft: Am Weichselgarten 7 • 91058 Erlangen • Germany
 Registernummer: HRB 9360
 Registergericht: Amtsgericht Fürth

 ___
 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] Please help with procedure for making contributions

2011-06-16 Thread Steven Velez
Thanks for the follow-up.  We are aware that the idea is to copy and
freely distribute the code and all contributions.  I think the idea is
that IF we are required to sign an agreement, then it doesn't impose
any odd, additional requirements/request of us.  I think our legal
department also mentioned something about being clear on the
intentions of expectations of other contributors when we are USING the
software, but I believe this is secondary in the contribution case.

Thanks, and hopefully I will actually be able to submit the patch soon.

Steven

On Thu, Jun 16, 2011 at 7:36 AM, David Cole david.c...@kitware.com wrote:
 On Wed, Jun 15, 2011 at 8:48 PM, Steven Velez sbv1...@gmail.com wrote:
 Hi All,

 After having searched the cmake web site and wiki, I have been unable
 to find a documented procedure for submitting patches to CMake.   Via
 brwosing the bug tracker and watching this list, it seems generally
 apparent that a non-committer who wants to make a contribution simply
 opens an issue and attaches his (or her) patch.  Is that all there is
 to it?
 Yes, that's it. This list and its traffic are the living documentation of
 CMake, if you will. While we do have the official help documentation web
 pages, and there is some good stuff on the Wiki, asking here is the way to
 get answers when searching teh Interwebz yields nothing.
 To contribute a patch, please search the bug database for an existing issue
 (or open a new one if necessary), and attach it there.
 To preserve your authorship in the patch, prepare a git commit with the
 correct authorship in it, and then use the git command:
   git format-patch -1


 I imagine that like most developers working for an organization
 focusing on closed source software, everything I produce is legally
 theirs, so I have been very careful about getting permission from them
 to make a contribution.  However, they would like me to be completely
 sure of all formalities that must be followed in doing so.  For
 example, do you have contributors sign an assignment of copyright or
 some other contributor's agreement?  Are there any cases in which
 contributions will not be covered by the same BSD license that CMake
 is covered by. (be aware, that my patch is very small, and we are just
 crossing t's).

 Any information would be appreciated.
 We do not have an official contributor's agreement that needs to be signed.
 But if your patch just blends stuff into the existing code base (crossing
 t's or dotting i's), then it becomes part of the existing code base, covered
 by the same license CMake is covered by.
 I am not a lawyer, but the intent of contributing code to an open source
 project is to allow that project to copy it around and freely distribute it.
 So if you want to keep any kind of copyright for yourself (or your company),
 do not contribute it unless you're willing to allow the project to do that
 even though you retain your own copyright. (You'll notice some of the module
 files have additional copyrights on top of the standard CMake copyright
 notice.)


 Thanks,
 Steven
 You're welcome,
 David

 ___
 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


[CMake] Please help with procedure for making contributions

2011-06-15 Thread Steven Velez
Hi All,

After having searched the cmake web site and wiki, I have been unable
to find a documented procedure for submitting patches to CMake.   Via
brwosing the bug tracker and watching this list, it seems generally
apparent that a non-committer who wants to make a contribution simply
opens an issue and attaches his (or her) patch.  Is that all there is
to it?

I imagine that like most developers working for an organization
focusing on closed source software, everything I produce is legally
theirs, so I have been very careful about getting permission from them
to make a contribution.  However, they would like me to be completely
sure of all formalities that must be followed in doing so.  For
example, do you have contributors sign an assignment of copyright or
some other contributor's agreement?  Are there any cases in which
contributions will not be covered by the same BSD license that CMake
is covered by. (be aware, that my patch is very small, and we are just
crossing t's).

Any information would be appreciated.

Thanks,
Steven
___
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] Patch for watcom InstallRequiredSystemLibraries

2011-06-04 Thread Steven Velez
I'd like to know the same.  Particularly with respect to whether any
documents will need to be signed, and for how much longer patches
(that aren't bug fixes) will be accepted to 2.8.5.

Thanks,
Steven

On Sat, Jun 4, 2011 at 1:53 AM, J Decker d3c...@gmail.com wrote:
 so what is the proper way for someone without repository write access
 to get patches added?

 On Tue, Feb 15, 2011 at 3:27 PM, J Decker d3c...@gmail.com wrote:
 http://public.kitware.com/Bug/view.php?id=11866

 ___
 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