[CMake] ExternalProject_Add show sources in Visual Studio
NoRulez
norulez at me.com
Thu Mar 20 06:22:51 EDT 2014
Ok, thank you very much.
I will try your examples.
Best Regards
> Am 19.03.2014 um 15:40 schrieb David Cole <dlrdave at aol.com>:
>
> That's one "workaround". Two more come to mind:
>
> (1) Another would be to force the configure/build steps of an external project to run *always* rather than when the stamp file indicates they are out of date. You could take a look at the open chemistry super build to see an example.
>
> Specifically, check out the code here:
>
> https://github.com/OpenChemistry/openchemistry/blob/master/CMakeLists.txt#L32
>
> And here:
>
> https://github.com/OpenChemistry/openchemistry/blob/master/cmake/External_avogadrolibs.cmake#L20
>
> Then, when forced, a build of the outer project will always trigger the build of the external project and make sure it's up to date with respect to its own source tree.
>
> But, if you have a lot of these, it just slows your build down in the normal case of not changing anything in the external projects. So use it sparingly, not globally.
>
> (2) One more workaround worth mentioning: the manual one. ExternalProject_Add will generate VS projects for the sub-projects if they are CMake-based and your containing project is using a VS generator, and then open the generated sub-projects directly to see the "normal" view of things. Make mods in there, and build/install in there, then go back to your containing project, and it's already up to date.
>
> To each his own... Good luck.
>
>
> HTH,
> David C.
>
>
>
> -----Original Message-----
> From: NoRulez <norulez at me.com>
> To: David Cole <dlrdave at aol.com>
> Cc: cmake <cmake at cmake.org>
> Sent: Wed, Mar 19, 2014 9:48 am
> Subject: Re: [CMake] ExternalProject_Add show sources in Visual Studio
>
>
> Ok, so the only "workaround" to archive this is to use "file(GLOB_RECURS...)"
> and rebuild the changed external project. Right?
>
> Best Regards
>
>> Am 19.03.2014 um 12:44 schrieb David Cole <dlrdave at aol.com>:
>>
>> Well, that sounds like the perfect way to use ExternalProject.
>>
>> But why do you want to show the sources in Visual Studio? Just for
> ease of
> looking at them?
>>
>> As I said in my earlier reply... even if we showed the sources,
> editing them
> would not trigger a rebuild of the external project. The dependencies are
> tracked via custom commands and stamp files that indicate last successful run
> time of those custom commands. They are not tracked by Visual Studio on a
> per-source-file/per-obj-file basis as they are in a normal VS project.
>>
>> The main goal of ExternalProject is to provide an easy-to-use way of
> *building*, *installing* and depending on an external project... It is most
> definitely NOT to provide an easy way to do active development on a project.
>>
>> If you need to see the sources for something that you're building
> within
> Visual Studio, then to me, that's a big red flag that it should not be an
> external project.
>>
>>
>> HTH,
>> David C.
>
>
More information about the CMake
mailing list