collapsed into cmake.cxx
This commit is contained in:
parent
36995a021d
commit
4bb19f37b3
@ -1,163 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
Program: Insight Segmentation & Registration Toolkit
|
||||
Module: $RCSfile$
|
||||
Language: C++
|
||||
Date: $Date$
|
||||
Version: $Revision$
|
||||
|
||||
Copyright (c) 2001 Insight Consortium
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
* The name of the Insight Consortium, nor the names of any consortium members,
|
||||
nor of any contributors, may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
* Modified source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS ``AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
=========================================================================*/
|
||||
#include "cmMakefile.h"
|
||||
#include "cmStandardIncludes.h"
|
||||
#include "cmMakeDepend.h"
|
||||
#include "cmUnixMakefileGenerator.h"
|
||||
#include "cmCacheManager.h"
|
||||
|
||||
void Usage(const char* program)
|
||||
{
|
||||
std::cerr << "Usage: " << program << " CMakeLists.txt "
|
||||
<< "-Ssource_start_directory "
|
||||
<< "-Ooutput_start_directory "
|
||||
<< "-Hsource_home_directory "
|
||||
<< "-Boutput_home_directory\n"
|
||||
<< "Where start directories are the current place in the tree,"
|
||||
"and the home directories are the top.\n";
|
||||
}
|
||||
|
||||
|
||||
// This is the main program used to gentrate makefile fragments
|
||||
// from CMakeLists.txt input files.
|
||||
int main(int ac, char** av)
|
||||
{
|
||||
if(ac < 2)
|
||||
{
|
||||
Usage(av[0]);
|
||||
return -1;
|
||||
}
|
||||
// set the cmake root directory
|
||||
std::string root = CMAKE_ROOT_DIR;
|
||||
|
||||
// Create a makefile
|
||||
cmMakefile mf;
|
||||
mf.AddDefinition("UNIX", "1");
|
||||
bool makeCache = false;
|
||||
// Parse the command line
|
||||
if(ac > 2)
|
||||
{
|
||||
for(int i =2; i < ac; i++)
|
||||
{
|
||||
std::string arg = av[i];
|
||||
// Set the start source directory with a -S dir options
|
||||
if(arg.find("-MakeCache",0) == 0)
|
||||
{
|
||||
makeCache = true;
|
||||
}
|
||||
// Set the start source directory with a -S dir options
|
||||
if(arg.find("-S",0) == 0)
|
||||
{
|
||||
std::string path = arg.substr(2);
|
||||
mf.SetStartDirectory(path.c_str());
|
||||
}
|
||||
// Set the start output directory with a -O dir options
|
||||
if(arg.find("-O",0) == 0)
|
||||
{
|
||||
std::string path = arg.substr(2);
|
||||
mf.SetStartOutputDirectory(path.c_str());
|
||||
}
|
||||
// Set the source home directory with a -H dir option
|
||||
if(arg.find("-H",0) == 0)
|
||||
{
|
||||
std::string path = arg.substr(2);
|
||||
mf.SetHomeDirectory(path.c_str());
|
||||
}
|
||||
// Set the output or binary directory with a -B dir option
|
||||
if(arg.find("-B",0) == 0)
|
||||
{
|
||||
std::string path = arg.substr(2);
|
||||
mf.SetHomeOutputDirectory(path.c_str());
|
||||
}
|
||||
if(arg.find("-D",0) == 0)
|
||||
{
|
||||
std::string value = arg.substr(2);
|
||||
mf.AddDefinition(value.c_str(), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Only generate makefiles if not trying to make the cache
|
||||
cmUnixMakefileGenerator* gen = new cmUnixMakefileGenerator;
|
||||
mf.SetMakefileGenerator(gen);
|
||||
if(makeCache)
|
||||
{
|
||||
// generate only enough for the cache
|
||||
gen->SetCacheOnlyOn();
|
||||
// generate for this makefile and all below it
|
||||
gen->SetRecurseOn();
|
||||
}
|
||||
|
||||
// Read and parse the input makefile
|
||||
mf.MakeStartDirectoriesCurrent();
|
||||
cmCacheManager::GetInstance()->LoadCache(&mf);
|
||||
cmCacheManager::GetInstance()->AddCacheEntry
|
||||
("CMAKE_ROOT", root.c_str(),
|
||||
"Path to CMake installation.", cmCacheManager::INTERNAL);
|
||||
|
||||
// Find our own exectuable.
|
||||
std::string cMakeSelf = cmSystemTools::FindProgram(av[0]);
|
||||
// Save the value in the cache
|
||||
cmCacheManager::GetInstance()->AddCacheEntry("CMAKE_COMMAND",
|
||||
cMakeSelf.c_str(),
|
||||
"Path to CMake executable.",
|
||||
cmCacheManager::INTERNAL);
|
||||
|
||||
// Transfer the cache into the makefile's definitions.
|
||||
cmCacheManager::GetInstance()->DefineCache(&mf);
|
||||
if(!mf.ReadListFile(av[1]))
|
||||
{
|
||||
Usage(av[0]);
|
||||
return -1;
|
||||
}
|
||||
mf.GenerateMakefile();
|
||||
cmCacheManager::GetInstance()->SaveCache(&mf);
|
||||
if(makeCache)
|
||||
{
|
||||
cmCacheManager::GetInstance()->PrintCache(std::cout);
|
||||
}
|
||||
|
||||
if(cmSystemTools::GetErrorOccuredFlag())
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,137 +0,0 @@
|
||||
/*=========================================================================
|
||||
|
||||
Program: Insight Segmentation & Registration Toolkit
|
||||
Module: $RCSfile$
|
||||
Language: C++
|
||||
Date: $Date$
|
||||
Version: $Revision$
|
||||
|
||||
Copyright (c) 2001 Insight Consortium
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
* The name of the Insight Consortium, nor the names of any consortium members,
|
||||
nor of any contributors, may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
* Modified source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS ``AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
=========================================================================*/
|
||||
#include "cmStandardIncludes.h"
|
||||
#include "cmMakefile.h"
|
||||
#include "cmMSProjectGenerator.h"
|
||||
#include "cmCacheManager.h"
|
||||
#include "windows.h"
|
||||
|
||||
// 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());
|
||||
}
|
||||
if(arg.find("-S",0) != std::string::npos)
|
||||
{
|
||||
std::string path = arg.substr(2);
|
||||
builder.SetStartDirectory(path.c_str());
|
||||
}
|
||||
if(arg.find("-O",0) != std::string::npos)
|
||||
{
|
||||
std::string path = arg.substr(2);
|
||||
builder.SetStartOutputDirectory(path.c_str());
|
||||
}
|
||||
if(arg.find("-B",0) != std::string::npos)
|
||||
{
|
||||
std::string path = arg.substr(2);
|
||||
builder.SetHomeOutputDirectory(path.c_str());
|
||||
std::cout << "set output home to " << path.c_str() << std::endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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];
|
||||
|
||||
// set the cmake install directory
|
||||
char fname[1024];
|
||||
::GetModuleFileName(NULL,fname,1023);
|
||||
std::string root = cmSystemTools::GetProgramPath(fname);
|
||||
std::string::size_type slashPos = root.rfind("/");
|
||||
if(slashPos != std::string::npos)
|
||||
{
|
||||
root = root.substr(0, slashPos);
|
||||
}
|
||||
cmCacheManager::GetInstance()->AddCacheEntry
|
||||
("CMAKE_ROOT", root.c_str(),
|
||||
"Path to CMake installation.", cmCacheManager::INTERNAL);
|
||||
|
||||
cmMakefile makefile;
|
||||
SetArgs(makefile, ac, av);
|
||||
cmMSProjectGenerator* pg = new cmMSProjectGenerator;
|
||||
if(arg.find("-DSP", 0) != std::string::npos)
|
||||
{
|
||||
pg->BuildDSWOff();
|
||||
}
|
||||
else
|
||||
{
|
||||
pg->BuildDSWOn();
|
||||
}
|
||||
makefile.SetMakefileGenerator(pg);
|
||||
makefile.MakeStartDirectoriesCurrent();
|
||||
cmCacheManager::GetInstance()->LoadCache(&makefile);
|
||||
|
||||
// Make sure the internal "CMAKE_COMMAND" cache entry is set.
|
||||
// Find our own exectuable.
|
||||
std::string cMakeSelf = "\""+cmSystemTools::FindProgram(av[0])+"\"";
|
||||
// Save the value in the cache
|
||||
cmCacheManager::GetInstance()->AddCacheEntry("CMAKE_COMMAND",
|
||||
cMakeSelf.c_str(),
|
||||
"Path to CMake executable.",
|
||||
cmCacheManager::INTERNAL);
|
||||
|
||||
cmCacheManager::GetInstance()->DefineCache(&makefile);
|
||||
makefile.ReadListFile(av[1]);
|
||||
makefile.GenerateMakefile();
|
||||
cmCacheManager::GetInstance()->SaveCache(&makefile);
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,107 +0,0 @@
|
||||
# Microsoft Developer Studio Project File - Name="CMakeSetupCMD" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Application" 0x0101
|
||||
|
||||
CFG=CMakeSetupCMD - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "CMakeSetupCMD.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "CMakeSetupCMD.mak" CFG="CMakeSetupCMD - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "CMakeSetupCMD - Win32 Release" (based on "Win32 (x86) Application")
|
||||
!MESSAGE "CMakeSetupCMD - Win32 Debug" (based on "Win32 (x86) Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "CMakeSetupCMD - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir ""
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GR /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
|
||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
|
||||
!ELSEIF "$(CFG)" == "CMakeSetupCMD - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir ""
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /W3 /Gm /GR /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /FD /GZ /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 Debug/CMakeLib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "CMakeSetupCMD - Win32 Release"
|
||||
# Name "CMakeSetupCMD - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\CMakeSetupCMD.cxx
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
Loading…
x
Reference in New Issue
Block a user