[CMake] Announcing CMake BASIS, a set of CMake based project interoperability and automation tools

Andreas Schuh andreas.schuh.84 at gmail.com
Thu Jan 23 12:13:35 EST 2014


On Jan 23, 2014, at 4:17 PM, Stephen Kelly <steveire at gmail.com> wrote:

> Andreas Schuh wrote:
> 
>> 
>> On Jan 23, 2014, at 1:11 PM, Andreas Schuh
>> <andreas.schuh.84 at gmail.com> wrote:
>> 
>>> 
>>> On Jan 23, 2014, at 9:40 AM, Stephen Kelly
>>> <steveire at gmail.com> wrote:
>>>> 
>>>>>> Another example: You have code for adding scripts as executables. What
>>>>>> are the generic (non-BASIS related) use cases for that?
>>>>>> 
>>>>> You can define dependencies among them or to modules written in the
>>>>> same scripting language.
>>>> 
>>>> Can you say why this is useful?
>> 
>> Let me give just one more example, if you could define that a script
>> depends on another executable target (e.g., build from C++), when I
>> rebuild only the script, the other executable will be recompiled and
>> linked if it has changed since the last build as well. This is not
>> possible at the moment without custom build commands/targets, but often
>> (Shell) scripts are indeed calling other executables of your package. Then
>> if you just want to test the changes made to the script, you can simply
>> run “make myscript” and all dependencies will be updated as well.
> 
> This looks like something that might be worth supporting better, but I can't 
> imagine how the cmake code would look or work.

With the current CMake commands, you could actually do the following:

add_executable(myutil main.cpp)
add_custom_target(myscript SOURCES myscript.sh)
add_dependencies(myscript myutil)

My goal with BASIS was, however, to reduce the number of different commands needed as in

add_executable(myutil.cpp)
add_executable(myscript.sh)
add_dependencies(myscript myutil)

and to establish an understanding of scripts to be just another kind of executables and modules being just another kind of shared library.

> Thanks,
> 
> Steve.
> 
> 
> -- 
> 
> 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://www.cmake.org/mailman/listinfo/cmake



More information about the CMake mailing list