[CMake] __FILE__ relative path

Michael Wild themiwi at gmail.com
Wed Dec 28 07:00:22 EST 2011


set(SRCS a/a.cpp b/b.cpp c/c.cpp d/d.cpp)

foreach(f IN LISTS SRCS)
  get_filename_component(b ${f} NAME)
  set_source_files_properties(${f} PROPERTIES
    COMPILE_DEFINITIONS "MYSRCNAME=${b}")
endforeach()

add_executable(foo ${SRCS})


HTH

Michael

On 12/28/2011 08:17 AM, vivek goel wrote:
> Is there any way to define custom
> macro as given in following answer
> http://stackoverflow.com/questions/237542/learning-the-source-codes-filename-at-compile-time
> with cmake
> 
> 
> regards
> Vivek Goel
> 
> 
> 
> On Tue, Dec 27, 2011 at 11:02 PM, Rolf Eike Beer <eike at sf-mail.de
> <mailto:eike at sf-mail.de>> wrote:
> 
>     Am Dienstag, 27. Dezember 2011, 09:18:15 schrieb J Decker:
>     > On Tue, Dec 27, 2011 at 1:42 AM, Rolf Eike Beer <eike at sf-mail.de
>     <mailto:eike at sf-mail.de>> wrote:
>     > > Am Dienstag, 27. Dezember 2011, 14:58:32 schrieb vivek goel:
>     > >> How can I make cmake to compile source with relative path ?
>     > >>
>     > >> So that __FILE__ belongs to relative path of the file
>     > >>
>     > >> or there is another way I can replace __FILE__ with some other
>     variable ?
>     >
>     > relative path to what?  What is it you need the path to be?
>     >
>     > > __FILE__ is implemented by the compiler, it has nothing to do
>     with CMake.
>     > > What
>     > Well, it does have a little to do with CMake; the variable is the
>     > filename passed to the compiler, which comes from cmake.
> 
>     Yes, but the compiler is free to convert it to an absolute path or
>     do whatever
>     it wants with it.
> 
>     Eike




More information about the CMake mailing list