[getting offtopic] Well, not because of this script but for any serious development on Windows I think it's a good idea to use the *nix shell provided by the Windows Git installation, it feels quite native. Together with cbucher's ConsoleZ you get a very convenient environment for cmake/command-line centered development, even when working with VS IDE.
On Wed, Dec 9, 2015 at 6:43 PM, Kevin Wojniak <kain...@kainjow.com> wrote: > Looks interesting Tamas! Too bad shell scripts don’t work natively on > Windows :) > > Kevin > > > > > On 8 Dec 2015, at 16:59, Tamás Kenéz wrote: > > Kevin, I have a shell script for such tasks, see >> https://gist.github.com/tamaskenez/d4509f240f4224eb9853. Feel free to use >> it if that's what you need. >> It extends the `cmake` command by executing multiple, related `cmake` >> calls >> with one command. See docs in gist. >> >> Your 'make release' example looks like this: >> >> cmakex cr -Hsourcedir -Bbuilddir # Configure Release >> >> with additional options you can do many tasks with one command >> >> cmakex cbitdr -Hsourcedir -Bbuilddir -GXcode # Configure, Build, >> Install, Test Debug & Release using Xcode >> >> Tamas >> >> On Tue, Dec 8, 2015 at 7:44 PM, Kevin Wojniak <kain...@kainjow.com> >> wrote: >> >> Functionality like add_custom_target combined with script mode is close, >>> but not quite there. add_custom_target already requires a build directory >>> and a generator, so it’s too late. Script mode requires setting variables >>> on the command line, so it’s too verbose. For example: >>> >>> if(“${ACTION}” STREQUAL “release”) >>> execute_process(…) >>> endif() >>> >>> cmake -P myscript.cmake -DACTION=release >>> >>> I suppose you could have multiple *.cmake files for each task, and those >>> could then call the master file with necessary variables set, but then >>> you’d need one file per task and that could become excessive. >>> >>> Kevin >>> >>> >>> >>> On 8 Dec 2015, at 10:22, Nils Gladitz wrote: >>> >>> On 08.12.2015 19:04, Kevin Wojniak wrote: >>> >>>> >>>> >>>>> add_task(release >>>>> COMMAND ${CMAKE_COMMAND} -E make_directory “build_dir” >>>>> COMMAND ${CMAKE_COMMAND} -E chdir “build_dir” ${CMAKE_COMMAND} >>>>> “-DCMAKE_BUILD_TYPE=Release”, “..” >>>>> ) >>>>> >>>>> >>>>> There is add_custom_target(). >>>> >>>> You can e.g. add_custom_target(release ${CMAKE_COMMAND} -E echo foobar) >>>> and with the Makefiles generator run "make release" and with visual >>>> studio trigger the build of the "release" project. >>>> >>>> For scripting you can use cmake in script mode with -P. >>>> >>>> e.g. given a script file release.cmake: >>>> message("Hello World") >>>> >>>> add_custom_target(release ${CMAKE_COMMAND} -P >>>> ${CMAKE_CURRENT_SOURCE_DIR}/release.cmake) >>>> >>>> Nils >>>> >>>> -- >>> >>> 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