ENH: Enabled bootstrapping with MinGW from an MSYS prompt.
This commit is contained in:
parent
0dbe4edcfc
commit
576d8b41cb
@ -37,17 +37,23 @@
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(__MINGW32__) && !defined(CMAKE_BUILD_WITH_CMAKE)
|
||||||
|
# define CMAKE_BOOT_MINGW
|
||||||
|
#endif
|
||||||
|
|
||||||
// include the generator
|
// include the generator
|
||||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
#if defined(_WIN32) && !defined(__CYGWIN__)
|
||||||
# include "cmGlobalVisualStudio6Generator.h"
|
|
||||||
# if !defined(__MINGW32__)
|
# if !defined(__MINGW32__)
|
||||||
# include "cmGlobalVisualStudio7Generator.h"
|
# include "cmGlobalVisualStudio7Generator.h"
|
||||||
# include "cmGlobalVisualStudio71Generator.h"
|
# include "cmGlobalVisualStudio71Generator.h"
|
||||||
# include "cmGlobalVisualStudio8Generator.h"
|
# include "cmGlobalVisualStudio8Generator.h"
|
||||||
# endif
|
# endif
|
||||||
# include "cmGlobalBorlandMakefileGenerator.h"
|
# if !defined(CMAKE_BOOT_MINGW)
|
||||||
# include "cmGlobalNMakeMakefileGenerator.h"
|
# include "cmGlobalVisualStudio6Generator.h"
|
||||||
# include "cmGlobalWatcomWMakeGenerator.h"
|
# include "cmGlobalBorlandMakefileGenerator.h"
|
||||||
|
# include "cmGlobalNMakeMakefileGenerator.h"
|
||||||
|
# include "cmGlobalWatcomWMakeGenerator.h"
|
||||||
|
# endif
|
||||||
# include "cmGlobalMSYSMakefileGenerator.h"
|
# include "cmGlobalMSYSMakefileGenerator.h"
|
||||||
# include "cmGlobalMinGWMakefileGenerator.h"
|
# include "cmGlobalMinGWMakefileGenerator.h"
|
||||||
# include "cmWin32ProcessExecution.h"
|
# include "cmWin32ProcessExecution.h"
|
||||||
@ -1243,7 +1249,7 @@ int cmake::Configure()
|
|||||||
{
|
{
|
||||||
#if defined(__BORLANDC__) && defined(_WIN32)
|
#if defined(__BORLANDC__) && defined(_WIN32)
|
||||||
this->SetGlobalGenerator(new cmGlobalBorlandMakefileGenerator);
|
this->SetGlobalGenerator(new cmGlobalBorlandMakefileGenerator);
|
||||||
#elif defined(_WIN32) && !defined(__CYGWIN__)
|
#elif defined(_WIN32) && !defined(__CYGWIN__) && !defined(CMAKE_BOOT_MINGW)
|
||||||
std::string installedCompiler;
|
std::string installedCompiler;
|
||||||
std::string mp = "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup;Dbghelp_path]";
|
std::string mp = "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup;Dbghelp_path]";
|
||||||
cmSystemTools::ExpandRegistryValues(mp);
|
cmSystemTools::ExpandRegistryValues(mp);
|
||||||
@ -1593,8 +1599,6 @@ void cmake::AddDefaultCommands()
|
|||||||
void cmake::AddDefaultGenerators()
|
void cmake::AddDefaultGenerators()
|
||||||
{
|
{
|
||||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
#if defined(_WIN32) && !defined(__CYGWIN__)
|
||||||
m_Generators[cmGlobalVisualStudio6Generator::GetActualName()] =
|
|
||||||
&cmGlobalVisualStudio6Generator::New;
|
|
||||||
#if !defined(__MINGW32__)
|
#if !defined(__MINGW32__)
|
||||||
m_Generators[cmGlobalVisualStudio7Generator::GetActualName()] =
|
m_Generators[cmGlobalVisualStudio7Generator::GetActualName()] =
|
||||||
&cmGlobalVisualStudio7Generator::New;
|
&cmGlobalVisualStudio7Generator::New;
|
||||||
@ -1603,12 +1607,16 @@ void cmake::AddDefaultGenerators()
|
|||||||
m_Generators[cmGlobalVisualStudio8Generator::GetActualName()] =
|
m_Generators[cmGlobalVisualStudio8Generator::GetActualName()] =
|
||||||
&cmGlobalVisualStudio8Generator::New;
|
&cmGlobalVisualStudio8Generator::New;
|
||||||
#endif
|
#endif
|
||||||
|
#if !defined(CMAKE_BOOT_MINGW)
|
||||||
|
m_Generators[cmGlobalVisualStudio6Generator::GetActualName()] =
|
||||||
|
&cmGlobalVisualStudio6Generator::New;
|
||||||
m_Generators[cmGlobalBorlandMakefileGenerator::GetActualName()] =
|
m_Generators[cmGlobalBorlandMakefileGenerator::GetActualName()] =
|
||||||
&cmGlobalBorlandMakefileGenerator::New;
|
&cmGlobalBorlandMakefileGenerator::New;
|
||||||
m_Generators[cmGlobalNMakeMakefileGenerator::GetActualName()] =
|
m_Generators[cmGlobalNMakeMakefileGenerator::GetActualName()] =
|
||||||
&cmGlobalNMakeMakefileGenerator::New;
|
&cmGlobalNMakeMakefileGenerator::New;
|
||||||
m_Generators[cmGlobalWatcomWMakeGenerator::GetActualName()] =
|
m_Generators[cmGlobalWatcomWMakeGenerator::GetActualName()] =
|
||||||
&cmGlobalWatcomWMakeGenerator::New;
|
&cmGlobalWatcomWMakeGenerator::New;
|
||||||
|
#endif
|
||||||
m_Generators[cmGlobalMSYSMakefileGenerator::GetActualName()] =
|
m_Generators[cmGlobalMSYSMakefileGenerator::GetActualName()] =
|
||||||
&cmGlobalMSYSMakefileGenerator::New;
|
&cmGlobalMSYSMakefileGenerator::New;
|
||||||
m_Generators[cmGlobalMinGWMakefileGenerator::GetActualName()] =
|
m_Generators[cmGlobalMinGWMakefileGenerator::GetActualName()] =
|
||||||
|
83
bootstrap
83
bootstrap
@ -17,6 +17,33 @@
|
|||||||
#
|
#
|
||||||
#=========================================================================
|
#=========================================================================
|
||||||
|
|
||||||
|
# Detect system and directory information.
|
||||||
|
cmake_system=`uname`
|
||||||
|
cmake_source_dir=`echo $0 | sed -n '/\//{s/\/[^\/]*$//;p;}'`
|
||||||
|
cmake_source_dir=`(cd "${cmake_source_dir}";pwd)`
|
||||||
|
cmake_binary_dir=`pwd`
|
||||||
|
cmake_bootstrap_dir="${cmake_binary_dir}/Bootstrap.cmk"
|
||||||
|
cmake_data_dir="/share/CMake"
|
||||||
|
cmake_doc_dir="/doc/CMake"
|
||||||
|
cmake_man_dir="/man"
|
||||||
|
cmake_init_file=""
|
||||||
|
|
||||||
|
# Determine whether this is a MinGW environment.
|
||||||
|
if echo "${cmake_system}" | grep MINGW >/dev/null 2>&1; then
|
||||||
|
cmake_system_mingw=true
|
||||||
|
else
|
||||||
|
cmake_system_mingw=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Choose the generator to use for bootstrapping.
|
||||||
|
if ${cmake_system_mingw}; then
|
||||||
|
# Bootstrapping from an MSYS prompt.
|
||||||
|
cmake_bootstrap_generator="MSYS Makefiles"
|
||||||
|
else
|
||||||
|
# Bootstrapping from a standard UNIX prompt.
|
||||||
|
cmake_bootstrap_generator="Unix Makefiles"
|
||||||
|
fi
|
||||||
|
|
||||||
CMAKE_KNOWN_C_COMPILERS="cc gcc xlc icc tcc"
|
CMAKE_KNOWN_C_COMPILERS="cc gcc xlc icc tcc"
|
||||||
CMAKE_KNOWN_CXX_COMPILERS="aCC xlC CC g++ c++ icc como "
|
CMAKE_KNOWN_CXX_COMPILERS="aCC xlC CC g++ c++ icc como "
|
||||||
CMAKE_KNOWN_MAKE_PROCESSORS="gmake make"
|
CMAKE_KNOWN_MAKE_PROCESSORS="gmake make"
|
||||||
@ -66,12 +93,31 @@ CMAKE_CXX_SOURCES="\
|
|||||||
cmOrderLinkDirectories \
|
cmOrderLinkDirectories \
|
||||||
cmSourceGroup"
|
cmSourceGroup"
|
||||||
|
|
||||||
|
if ${cmake_system_mingw}; then
|
||||||
|
CMAKE_CXX_SOURCES="${CMAKE_CXX_SOURCES}\
|
||||||
|
cmGlobalMSYSMakefileGenerator \
|
||||||
|
cmGlobalMinGWMakefileGenerator \
|
||||||
|
cmWin32ProcessExecution"
|
||||||
|
fi
|
||||||
|
|
||||||
CMAKE_C_SOURCES="\
|
CMAKE_C_SOURCES="\
|
||||||
cmListFileLexer \
|
cmListFileLexer \
|
||||||
"
|
"
|
||||||
|
|
||||||
KWSYS_C_SOURCES="\
|
if ${cmake_system_mingw}; then
|
||||||
ProcessUNIX"
|
KWSYS_C_SOURCES="\
|
||||||
|
ProcessWin32"
|
||||||
|
KWSYS_C_MINGW_SOURCES="\
|
||||||
|
ProcessFwd9x \
|
||||||
|
EncodeExecutable"
|
||||||
|
KWSYS_C_GENERATED_SOURCES="\
|
||||||
|
cmsysProcessFwd9xEnc"
|
||||||
|
else
|
||||||
|
KWSYS_C_SOURCES="\
|
||||||
|
ProcessUNIX"
|
||||||
|
KWSYS_C_MINGW_SOURCES=""
|
||||||
|
KWSYS_C_GENERATED_SOURCES=""
|
||||||
|
fi
|
||||||
|
|
||||||
KWSYS_CXX_SOURCES="\
|
KWSYS_CXX_SOURCES="\
|
||||||
Directory \
|
Directory \
|
||||||
@ -92,17 +138,6 @@ KWSYS_IOS_FILES="
|
|||||||
iostream \
|
iostream \
|
||||||
sstream"
|
sstream"
|
||||||
|
|
||||||
cmake_system=`uname`
|
|
||||||
|
|
||||||
cmake_source_dir=`echo $0 | sed -n '/\//{s/\/[^\/]*$//;p;}'`
|
|
||||||
cmake_source_dir=`(cd "${cmake_source_dir}";pwd)`
|
|
||||||
cmake_binary_dir=`pwd`
|
|
||||||
cmake_bootstrap_dir="${cmake_binary_dir}/Bootstrap.cmk"
|
|
||||||
cmake_data_dir="/share/CMake"
|
|
||||||
cmake_doc_dir="/doc/CMake"
|
|
||||||
cmake_man_dir="/man"
|
|
||||||
cmake_init_file=""
|
|
||||||
|
|
||||||
# Display CMake bootstrap usage
|
# Display CMake bootstrap usage
|
||||||
cmake_usage()
|
cmake_usage()
|
||||||
{
|
{
|
||||||
@ -970,7 +1005,7 @@ cmake_compiler_settings_comment="/*
|
|||||||
* Sources:
|
* Sources:
|
||||||
* ${CMAKE_CXX_SOURCES} ${CMAKE_C_SOURCES}
|
* ${CMAKE_CXX_SOURCES} ${CMAKE_C_SOURCES}
|
||||||
* kwSys Sources:
|
* kwSys Sources:
|
||||||
* ${KWSYS_CXX_SOURCES} ${KWSYS_C_SOURCES}
|
* ${KWSYS_CXX_SOURCES} ${KWSYS_C_SOURCES} ${KWSYS_C_MINGW_SOURCES}
|
||||||
*/
|
*/
|
||||||
"
|
"
|
||||||
|
|
||||||
@ -1056,7 +1091,7 @@ done
|
|||||||
# Generate Makefile
|
# Generate Makefile
|
||||||
dep="cmConfigure.h cmsys/Configure.hxx cmsys/Configure.h `cmake_escape \"${cmake_source_dir}\"`/Source/*.h"
|
dep="cmConfigure.h cmsys/Configure.hxx cmsys/Configure.h `cmake_escape \"${cmake_source_dir}\"`/Source/*.h"
|
||||||
objs=""
|
objs=""
|
||||||
for a in ${CMAKE_CXX_SOURCES} ${CMAKE_C_SOURCES} ${KWSYS_CXX_SOURCES} ${KWSYS_C_SOURCES}; do
|
for a in ${CMAKE_CXX_SOURCES} ${CMAKE_C_SOURCES} ${KWSYS_CXX_SOURCES} ${KWSYS_C_SOURCES} ${KWSYS_C_GENERATED_SOURCES}; do
|
||||||
objs="${objs} ${a}.o"
|
objs="${objs} ${a}.o"
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -1095,7 +1130,7 @@ for a in ${CMAKE_C_SOURCES}; do
|
|||||||
echo "${a}.o : ${src} ${dep}" >> "${cmake_bootstrap_dir}/Makefile"
|
echo "${a}.o : ${src} ${dep}" >> "${cmake_bootstrap_dir}/Makefile"
|
||||||
echo " ${cmake_c_compiler} ${cmake_c_flags} -c ${src} -o ${a}.o" >> "${cmake_bootstrap_dir}/Makefile"
|
echo " ${cmake_c_compiler} ${cmake_c_flags} -c ${src} -o ${a}.o" >> "${cmake_bootstrap_dir}/Makefile"
|
||||||
done
|
done
|
||||||
for a in ${KWSYS_C_SOURCES}; do
|
for a in ${KWSYS_C_SOURCES} ${KWSYS_C_MINGW_SOURCES}; do
|
||||||
src=`cmake_escape "${cmake_source_dir}/Source/kwsys/${a}.c"`
|
src=`cmake_escape "${cmake_source_dir}/Source/kwsys/${a}.c"`
|
||||||
echo "${a}.o : ${src} ${dep}" >> "${cmake_bootstrap_dir}/Makefile"
|
echo "${a}.o : ${src} ${dep}" >> "${cmake_bootstrap_dir}/Makefile"
|
||||||
echo " ${cmake_c_compiler} ${cmake_c_flags} -DKWSYS_NAMESPACE=cmsys -c ${src} -o ${a}.o" >> "${cmake_bootstrap_dir}/Makefile"
|
echo " ${cmake_c_compiler} ${cmake_c_flags} -DKWSYS_NAMESPACE=cmsys -c ${src} -o ${a}.o" >> "${cmake_bootstrap_dir}/Makefile"
|
||||||
@ -1105,6 +1140,20 @@ for a in ${KWSYS_CXX_SOURCES}; do
|
|||||||
echo "${a}.o : ${src} ${dep}" >> "${cmake_bootstrap_dir}/Makefile"
|
echo "${a}.o : ${src} ${dep}" >> "${cmake_bootstrap_dir}/Makefile"
|
||||||
echo " ${cmake_cxx_compiler} ${cmake_cxx_flags} -DKWSYS_NAMESPACE=cmsys -c ${src} -o ${a}.o" >> "${cmake_bootstrap_dir}/Makefile"
|
echo " ${cmake_cxx_compiler} ${cmake_cxx_flags} -DKWSYS_NAMESPACE=cmsys -c ${src} -o ${a}.o" >> "${cmake_bootstrap_dir}/Makefile"
|
||||||
done
|
done
|
||||||
|
if ${cmake_system_mingw}; then
|
||||||
|
src=`cmake_escape "${cmake_bootstrap_dir}/cmsysProcessFwd9xEnc.c"`
|
||||||
|
in=`cmake_escape "${cmake_bootstrap_dir}/cmsysProcessFwd9x.exe"`
|
||||||
|
cmd=`cmake_escape "${cmake_bootstrap_dir}/cmsysEncodeExecutable.exe"`
|
||||||
|
a="cmsysProcessFwd9xEnc"
|
||||||
|
echo "${cmd} : EncodeExecutable.o" >> "${cmake_bootstrap_dir}/Makefile"
|
||||||
|
echo " ${cmake_c_compiler} ${LDFLAGS} ${cmake_c_flags} EncodeExecutable.o -o ${cmd}" >> "${cmake_bootstrap_dir}/Makefile"
|
||||||
|
echo "${in} : ProcessFwd9x.o" >> "${cmake_bootstrap_dir}/Makefile"
|
||||||
|
echo " ${cmake_c_compiler} ${LDFLAGS} ${cmake_c_flags} ProcessFwd9x.o -o ${in}" >> "${cmake_bootstrap_dir}/Makefile"
|
||||||
|
echo "${src} : ${cmd} ${in}" >> "${cmake_bootstrap_dir}/Makefile"
|
||||||
|
echo " ${cmd} ${in} ${src} cmsys ProcessFwd9x" >> "${cmake_bootstrap_dir}/Makefile"
|
||||||
|
echo "${a}.o : ${src} ${dep}" >> "${cmake_bootstrap_dir}/Makefile"
|
||||||
|
echo " ${cmake_c_compiler} ${cmake_c_flags} -I`cmake_escape \"${cmake_source_dir}/Source/kwsys\"` -DKWSYS_NAMESPACE=cmsys -c ${src} -o ${a}.o" >> "${cmake_bootstrap_dir}/Makefile"
|
||||||
|
fi
|
||||||
cat>>"${cmake_bootstrap_dir}/Makefile"<<EOF
|
cat>>"${cmake_bootstrap_dir}/Makefile"<<EOF
|
||||||
rebuild_cache:
|
rebuild_cache:
|
||||||
cd "${cmake_binary_dir}" && "${cmake_source_dir}/bootstrap"
|
cd "${cmake_binary_dir}" && "${cmake_source_dir}/bootstrap"
|
||||||
@ -1153,7 +1202,7 @@ export CXX
|
|||||||
export MAKE
|
export MAKE
|
||||||
|
|
||||||
# Run bootstrap CMake to configure real CMake
|
# Run bootstrap CMake to configure real CMake
|
||||||
"${cmake_bootstrap_dir}/cmake" "${cmake_source_dir}" "-C${cmake_bootstrap_dir}/InitialCacheFlags.cmake"
|
"${cmake_bootstrap_dir}/cmake" "${cmake_source_dir}" "-C${cmake_bootstrap_dir}/InitialCacheFlags.cmake" "-G${cmake_bootstrap_generator}"
|
||||||
RES=$?
|
RES=$?
|
||||||
if [ "${RES}" -ne "0" ]; then
|
if [ "${RES}" -ne "0" ]; then
|
||||||
cmake_error 11 "Problem while running initial CMake"
|
cmake_error 11 "Problem while running initial CMake"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user