CMake/Source/CMakeSetupCMD.cxx

88 lines
2.2 KiB
C++
Raw Normal View History

2001-01-11 22:55:47 +03:00
/*=========================================================================
Program: Insight Segmentation & Registration Toolkit
Module: $RCSfile$
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 2000 National Library of Medicine
All rights reserved.
See COPYRIGHT.txt for copyright details.
=========================================================================*/
#include "cmStandardIncludes.h"
#include "cmMakefile.h"
#include "cmMSProjectGenerator.h"
#include "cmCacheManager.h"
2000-09-21 21:45:08 +04:00
// this is the command line version of CMakeSetup.
// It is called from Visual Studio when a CMakeLists.txt
// file is changed.
// Set the command line arguments
void SetArgs(cmMakefile& builder, int ac, char** av)
{
for(int i =3; i < ac; i++)
{
std::string arg = av[i];
if(arg.find("-H",0) != std::string::npos)
{
std::string path = arg.substr(2);
builder.SetHomeDirectory(path.c_str());
}
2001-02-15 21:30:13 +03:00
if(arg.find("-S",0) != std::string::npos)
{
std::string path = arg.substr(2);
2001-02-15 21:30:13 +03:00
builder.SetStartDirectory(path.c_str());
}
if(arg.find("-O",0) != std::string::npos)
{
std::string path = arg.substr(2);
2001-02-15 21:30:13 +03:00
builder.SetStartOutputDirectory(path.c_str());
}
if(arg.find("-B",0) != std::string::npos)
{
std::string path = arg.substr(2);
2001-02-15 21:30:13 +03:00
builder.SetHomeOutputDirectory(path.c_str());
std::cout << "set output home to " << path.c_str() << std::endl;
}
}
}
2000-09-21 21:45:08 +04:00
int main(int ac, char** av)
{
if(ac < 3)
{
std::cerr << "Usage: " << av[0] <<
" CMakeLists.txt -[DSP|DSW] -Hsource_home -Sstart_source_directory "
" -Ostart_output_directory -Boutput_home" << std::endl;
return -1;
}
std::string arg = av[2];
cmMakefile makefile;
SetArgs(makefile, ac, av);
cmMSProjectGenerator* pg = new cmMSProjectGenerator;
if(arg.find("-DSP", 0) != std::string::npos)
{
pg->BuildDSWOff();
}
else
{
2001-01-11 22:47:38 +03:00
pg->BuildDSWOn();
}
makefile.SetMakefileGenerator(pg);
makefile.MakeStartDirectoriesCurrent();
cmCacheManager::GetInstance()->LoadCache(&makefile);
makefile.ReadListFile(av[1]);
makefile.GenerateMakefile();
cmCacheManager::GetInstance()->SaveCache(&makefile);
return 0;
}