I think http://www.cmake.org/cmake/help/v3.3/variable/CMAKE_CURRENT_LIST_FILE.html is exactly what you're asking for, and will work in most contexts you're thinking of. (Configuring from a top level or sub-directory CMakeLists file, in an included file, running a CMake -P script file...)
The only thing I'd say you should watch out for is using it inside a function you define. I think it evaluates to the location where the function is being called from, so in that case, it would NOT be the file it's defined in (necessarily)... I could be wrong on this point, though, so you should double check experimentally. Or by analyzing the CMake source. HTH, David C. On Saturday, July 25, 2015, J Decker <d3c...@gmail.com> wrote: > > > On Fri, Jul 24, 2015 at 9:30 PM, Daniel Dilts <dilts...@gmail.com > <javascript:_e(%7B%7D,'cvml','dilts...@gmail.com');>> wrote: > >> Yes, ${CMAKE_CURRENT_SOURCE_DIR} has the path to the CMakeLists.txt file >> that has the include() command. Is there a variable with the path of the >> file referenced by the include() command? >> > Could define such a variable before the include... then the included file > could reference that variable? > >> >> On Fri, Jul 24, 2015 at 7:40 PM, J Decker <d3c...@gmail.com >> <javascript:_e(%7B%7D,'cvml','d3c...@gmail.com');>> wrote: >> >>> ${CMAKE_SOURCE_DIR} - path of the root cmake file called >>> ${CMAKE_CURRENT_SOURCE_DIR} - path of the current cmakelists >>> >>> On Fri, Jul 24, 2015 at 3:02 PM, Daniel Dilts <dilts...@gmail.com >>> <javascript:_e(%7B%7D,'cvml','dilts...@gmail.com');>> wrote: >>> >>>> I have a set of CMake commands that I want to place in a single file >>>> and have other projects use it. The commands in the file must affect the >>>> scope that references it, so the declared functions, include_directories, >>>> etc. must affect things in the scope that includes it. >>>> >>>> I attempted to place these things in a file and use >>>> include(filename.cmake) to add the file. This appears to work until the >>>> file with the include() is in a different location. >>>> >>>> I need the include_directories to be relative to the location of >>>> filename.cmake, not the CMakeLists.txt that included it. >>>> >>>> Is there any way to accomplish this? >>>> >>>> -- >>>> >>>> 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