Hi. You're already (partially) doing it, with the CMAKE_SOURCE_DIR and Boost_INCLUDE_DIRS variables. You can store whatever list of arguments you want in a variable and expand it in the proper place. For example this:
set(MyArgs -d sqlite --sqlite-override-null --std c++11 --profile boost --generate-query -I${CMAKE_SOURCE_DIR} -I${Boost_INCLUDE_DIRS} --include-prefix dir_odb --changelog ${CMAKE_SOURCE_DIR}/odb/file.xml) add_custom_command( TARGET markets_odb PRE_BUILD COMMAND odb ARGS ${MyArgs} ${CMAKE_CURRENT_SOURCE_DIR}/file1.hpp COMMAND odb ARGS ${MyArgs} ${CMAKE_CURRENT_SOURCE_DIR}/file2.hpp ) Remember that what CMake actually does is parse some strings and lists. You could even do this (I wouldn't recommend it, but just to show what's possible): set(MyCommand COMMAND odb ARGS -d sqlite --sqlite-override-null --std c++11 --profile boost --generate-query -I${CMAKE_SOURCE_DIR} -I${Boost_INCLUDE_DIRS} --include-prefix dir_odb --changelog ${CMAKE_SOURCE_DIR}/odb/file.xml) add_custom_command( TARGET markets_odb PRE_BUILD ${MyCommand} ${CMAKE_CURRENT_SOURCE_DIR}/file1.hpp ${MyCommand} ${CMAKE_CURRENT_SOURCE_DIR}/file2.hpp ) Petr On Fri, Mar 20, 2015 at 3:43 PM, MM <finjulh...@gmail.com> wrote: > I have the following code: > > ADD_CUSTOM_COMMAND(TARGET markets_odb > PRE_BUILD > COMMAND odb ARGS -d sqlite --sqlite-override-null --std c++11 --profile > boost --generate-query > -I${CMAKE_SOURCE_DIR} -I${Boost_INCLUDE_DIRS} > --include-prefix dir_odb > --changelog ${CMAKE_SOURCE_DIR}/odb/file.xml > ${CMAKE_CURRENT_SOURCE_DIR}/file1.hpp > COMMAND odb ARGS -d sqlite --sqlite-override-null --std c++11 --profile > boost --generate-query > -I${CMAKE_SOURCE_DIR} -I${Boost_INCLUDE_DIRS} > --include-prefix dir_odb > --changelog ${CMAKE_SOURCE_DIR}/odb/file.xml > ${CMAKE_CURRENT_SOURCE_DIR}/file2.hpp > ... > ) > > > I have a few more files than the above 2. > > Can I factorize part the command args to reduce the repeated part? > > MM > > -- > > 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