2001-02-28 00:48:15 +03:00
/*=========================================================================
2002-10-24 02:03:27 +04:00
Program : CMake - Cross - Platform Makefile Generator
2001-02-28 00:48:15 +03:00
Module : $ RCSfile $
Language : C + +
Date : $ Date $
Version : $ Revision $
2002-10-24 02:03:27 +04:00
Copyright ( c ) 2002 Kitware , Inc . , Insight Consortium . All rights reserved .
See Copyright . txt or http : //www.cmake.org/HTML/Copyright.html for details.
2001-02-28 00:48:15 +03:00
2002-01-21 23:30:43 +03:00
This software is distributed WITHOUT ANY WARRANTY ; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE . See the above copyright notices for more information .
2001-02-28 00:48:15 +03:00
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */
# include "cmWrapExcludeFilesCommand.h"
2004-02-22 21:14:59 +03:00
# include "cmSourceFile.h"
2003-05-24 18:07:58 +04:00
# include <stdlib.h> // required for atof
2001-02-28 00:48:15 +03:00
// cmWrapExcludeFilesCommand
2002-03-29 22:20:32 +03:00
bool cmWrapExcludeFilesCommand : : InitialPass ( std : : vector < std : : string > const & argsIn )
2001-02-28 00:48:15 +03:00
{
2002-04-19 22:03:47 +04:00
const char * versionValue
= m_Makefile - > GetDefinition ( " CMAKE_MINIMUM_REQUIRED_VERSION " ) ;
if ( versionValue & & atof ( versionValue ) > 1.2 )
{
this - > SetError ( " The WRAP_EXCLUDE_FILES command has been deprecated in CMake version 1.4. You should use the SET_SOURCE_FILES_PROPERTIES command instead. \n " ) ;
return false ;
}
2002-03-29 22:20:32 +03:00
if ( argsIn . size ( ) < 1 )
2001-02-28 00:48:15 +03:00
{
this - > SetError ( " called with incorrect number of arguments " ) ;
return false ;
}
2002-03-29 22:20:32 +03:00
std : : vector < std : : string > args ;
2002-06-27 23:57:09 +04:00
m_Makefile - > ExpandSourceListArguments ( argsIn , args , 0 ) ;
2001-09-20 23:08:30 +04:00
for ( std : : vector < std : : string > : : const_iterator j = args . begin ( ) ;
2001-02-28 00:48:15 +03:00
j ! = args . end ( ) ; + + j )
{
2002-06-27 23:57:09 +04:00
// if the file is already in the makefile just set properites on it
cmSourceFile * sf = m_Makefile - > GetSource ( j - > c_str ( ) ) ;
if ( sf )
2001-02-28 00:48:15 +03:00
{
2002-08-16 19:20:18 +04:00
sf - > SetProperty ( " WRAP_EXCLUDE " , " 1 " ) ;
2002-06-27 23:57:09 +04:00
}
// if file is not already in the makefile, then add it
else
{
std : : string newfile = * j ;
cmSourceFile file ;
std : : string path = cmSystemTools : : GetFilenamePath ( newfile ) ;
// set the flags
2002-08-16 19:20:18 +04:00
file . SetProperty ( " WRAP_EXCLUDE " , " 1 " ) ;
2002-06-27 23:57:09 +04:00
// if this is a full path then
if ( ( path . size ( ) & & path [ 0 ] = = ' / ' ) | |
( path . size ( ) > 1 & & path [ 1 ] = = ' : ' ) )
2001-02-28 00:48:15 +03:00
{
2002-06-27 23:57:09 +04:00
file . SetName ( cmSystemTools : : GetFilenameName ( newfile . c_str ( ) ) . c_str ( ) ,
path . c_str ( ) ,
m_Makefile - > GetSourceExtensions ( ) ,
m_Makefile - > GetHeaderExtensions ( ) ) ;
2001-02-28 00:48:15 +03:00
}
2002-06-27 23:57:09 +04:00
else
{
file . SetName ( newfile . c_str ( ) , m_Makefile - > GetCurrentDirectory ( ) ,
m_Makefile - > GetSourceExtensions ( ) ,
m_Makefile - > GetHeaderExtensions ( ) ) ;
}
// add the source file to the makefile
m_Makefile - > AddSource ( file ) ;
2001-02-28 00:48:15 +03:00
}
}
return true ;
}