The documentation for the CMake -C command line option says: "When cmake is first run in an empty build tree, it creates a CMakeCache.txt file and populates it with customizable settings for the project. This option may be used to specify a file from which to load cache entries before the first pass through the project's cmake listfiles. The loaded entries take priority over the project's default values. The given file should be a CMake script containing SET commands that use the CACHE option, not a cache-format file."
http://cmake.org/cmake/help/v2.8.8/cmake.html#opt:-Cinitial-cache The ONLY thing that should be in a -C file is a sequence of SET( ... CACHE ... ) commands. Anything else is unexpected, but (unfortunately) not strictly prohibited. We should have made it an error / mistake to put anything BUT "set(CACHE" commands in -C files, but to do so now would break backwards compatibility. We should probably do so now anyhow and introduce a policy that says to make it an error to put anything else into -C files. So... avoid putting anything else in your Init.cmake file, and you should be ok. HTH, David On Fri, Jun 29, 2012 at 8:44 AM, Christian Arnault <arna...@lal.in2p3.fr> wrote: > Hi, > > I wanted to factor out some initial stuff of my CMakeLists.txt that I > systematically include. > > typically I include the following lines at the beginning of all my > CMakeLists.txt: > > cmake_minimum_required(VERSION 2.8) > function (AA) > message ("calling AA") > endfunction() > > AA() > > Then I thought by using the -C option as follows: > >> cmake --build=. -C %CMTROOT%\Init.cmake ..\CMakeLists.txt > > with Init.cmake file containing > > function(AA) > message("calling aaaa") > endfunction() > > This would be equivalent. > > Apparently this is not the case. In particular, the function definitions are > not transmitted by this mechanism > > loading initial cache file ...\Init.cmake > > ... the functions defined in Init.cmake are not recognized > > Of course I could 'manually' include my module in all CMakeLists.txt but ... > > Can someone explain why? > > Or, how could I obtain what I need? > > > > Thanks for any hint > > Regards > Christian > > -- > -------------------------------------------- > | Christian Arnault | > | LAL Bat 200 pièce 03a | > | 91405 Orsay CEDEX | > | phone : (33) 1 64 46 84 24 | > | gsm : (33) 6 77 27 62 30 | > | fax : (33) 1 69 07 94 04 | > | e-mail : christian.arna...@lal.in2p3.fr | > -------------------------------------------- > > > -- > > 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