[CMake] basename macro

James Bigler bigler at cs.utah.edu
Mon Sep 10 12:40:35 EDT 2007


On Sep 10, 2007, at 10:19 AM, Juan Sanchez wrote:

> Is there a basename macro to remove the file extension from a name?  I
> am using 2.4.7.
>
> Thanks,
>
> Juan

What you want is GET_FILENAME_COMPONENT.

 From cmake --help-full | less

   GET_FILENAME_COMPONENT
        Get a specific component of a full filename.

          GET_FILENAME_COMPONENT(VarName FileName
                                 PATH|ABSOLUTE|NAME|EXT|NAME_WE
                                 [CACHE])

        Set VarName to be the path (PATH), file name (NAME), file  
extension
        (EXT), file name without extension (NAME_WE) of FileName, or  
the full
        absolute (ABSOLUTE) file name without symlinks.  Note that  
the path is
        converted to Unix slashes format and has no trailing  
slashes.  The
        longest file extension is always considered.  If the optional  
CACHE
        argument is specified, the result variable is added to the  
cache.

          GET_FILENAME_COMPONENT(VarName FileName
                                 PROGRAM [PROGRAM_ARGS ArgVar]
                                 [CACHE])

        The program in FileName will be found in the system search  
path or
        left as a full path.  If PROGRAM_ARGS is present with  
PROGRAM, then
        any command-line arguments present in the FileName string are  
split
        from the program name and stored in ArgVar.  This is used to  
separate
        a program name from its arguments in a command line string.



More information about the CMake mailing list