ENH: Better handling of debug postfix and fix the test
This commit is contained in:
parent
ed0999c9d1
commit
43d380e0d8
|
@ -249,6 +249,15 @@ bool cmFileCommand::HandleInstallCommand(
|
||||||
std::string destination = "";
|
std::string destination = "";
|
||||||
std::string stype = "FILES";
|
std::string stype = "FILES";
|
||||||
const char* build_type = m_Makefile->GetDefinition("BUILD_TYPE");
|
const char* build_type = m_Makefile->GetDefinition("BUILD_TYPE");
|
||||||
|
if ( build_type && strcmp(build_type, ".") == 0 )
|
||||||
|
{
|
||||||
|
build_type = 0;
|
||||||
|
}
|
||||||
|
if ( build_type && strncmp(build_type, ".\\", 2) == 0 )
|
||||||
|
{
|
||||||
|
build_type += 2;
|
||||||
|
}
|
||||||
|
|
||||||
const char* debug_postfix
|
const char* debug_postfix
|
||||||
= m_Makefile->GetDefinition("CMAKE_DEBUG_POSTFIX");
|
= m_Makefile->GetDefinition("CMAKE_DEBUG_POSTFIX");
|
||||||
const char* destdir = cmSystemTools::GetEnv("DESTDIR");
|
const char* destdir = cmSystemTools::GetEnv("DESTDIR");
|
||||||
|
@ -259,7 +268,7 @@ bool cmFileCommand::HandleInstallCommand(
|
||||||
{
|
{
|
||||||
extra_dir = build_type;
|
extra_dir = build_type;
|
||||||
std::string btype = cmSystemTools::LowerCase(build_type);
|
std::string btype = cmSystemTools::LowerCase(build_type);
|
||||||
if ( btype == "debug" )
|
if ( strncmp(btype.c_str(), "debug", strlen("debug")) == 0 )
|
||||||
{
|
{
|
||||||
debug = 1;
|
debug = 1;
|
||||||
}
|
}
|
||||||
|
@ -441,13 +450,19 @@ bool cmFileCommand::HandleInstallCommand(
|
||||||
|
|
||||||
for ( i = 0; i < files.size(); i ++ )
|
for ( i = 0; i < files.size(); i ++ )
|
||||||
{
|
{
|
||||||
std::string destfile
|
std::string destfilewe
|
||||||
= destination + "/" + cmSystemTools::GetFilenameName(files[i]);
|
= destination + "/"
|
||||||
|
+ cmSystemTools::GetFilenameWithoutExtension(files[i]);
|
||||||
std::string ctarget = files[i].c_str();
|
std::string ctarget = files[i].c_str();
|
||||||
std::string fname = cmSystemTools::GetFilenameName(ctarget);
|
std::string fname = cmSystemTools::GetFilenameName(ctarget);
|
||||||
std::string ext = cmSystemTools::GetFilenameExtension(ctarget);
|
std::string ext = cmSystemTools::GetFilenameExtension(ctarget);
|
||||||
std::string fnamewe
|
std::string fnamewe
|
||||||
= cmSystemTools::GetFilenameWithoutExtension(ctarget);
|
= cmSystemTools::GetFilenameWithoutExtension(ctarget);
|
||||||
|
std::string destfile = destfilewe;
|
||||||
|
if ( ext.size() )
|
||||||
|
{
|
||||||
|
destfile + "." + ext;
|
||||||
|
}
|
||||||
switch( itype )
|
switch( itype )
|
||||||
{
|
{
|
||||||
case cmTarget::MODULE_LIBRARY:
|
case cmTarget::MODULE_LIBRARY:
|
||||||
|
@ -456,6 +471,7 @@ bool cmFileCommand::HandleInstallCommand(
|
||||||
if ( debug )
|
if ( debug )
|
||||||
{
|
{
|
||||||
fname = fnamewe + debug_postfix + ext;
|
fname = fnamewe + debug_postfix + ext;
|
||||||
|
destfile = destfilewe + debug_postfix + ext;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Handle shared library versioning
|
// Handle shared library versioning
|
||||||
|
@ -564,7 +580,7 @@ bool cmFileCommand::HandleInstallCommand(
|
||||||
) )
|
) )
|
||||||
{
|
{
|
||||||
cmOStringStream err;
|
cmOStringStream err;
|
||||||
err << "Program setting permissions on file: " << destfile.c_str();
|
err << "Problem setting permissions on file: " << destfile.c_str();
|
||||||
perror(err.str().c_str());
|
perror(err.str().c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,28 +7,6 @@ SET(LIBRARY_OUTPUT_PATH "${EXECUTABLE_OUTPUT_PATH}")
|
||||||
SET(CMAKE_DEBUG_POSTFIX "_test_debug_postfix")
|
SET(CMAKE_DEBUG_POSTFIX "_test_debug_postfix")
|
||||||
|
|
||||||
SET(EXTRA_INSTALL_FLAGS)
|
SET(EXTRA_INSTALL_FLAGS)
|
||||||
IF(CMAKE_GENERATOR MATCHES "^Visual Studio")
|
|
||||||
MESSAGE("CMake generator: ${CMAKE_GENERATOR}")
|
|
||||||
FOREACH(build_type Debug Release RelWithDebInfo MinSizeRel)
|
|
||||||
IF(MAKEPROGRAM MATCHES "/build ${build_type}")
|
|
||||||
SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type})
|
|
||||||
ENDIF(MAKEPROGRAM MATCHES "/build ${build_type}")
|
|
||||||
IF(MAKEPROGRAM MATCHES "- ${build_type}")
|
|
||||||
SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type})
|
|
||||||
ENDIF(MAKEPROGRAM MATCHES "- ${build_type}")
|
|
||||||
ENDFOREACH(build_type)
|
|
||||||
IF(NOT ${EXTRA_INSTALL_FLAGS})
|
|
||||||
IF(BUILD_TYPE)
|
|
||||||
SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${BUILD_TYPE})
|
|
||||||
ENDIF(BUILD_TYPE)
|
|
||||||
ENDIF(NOT ${EXTRA_INSTALL_FLAGS})
|
|
||||||
IF(NOT DEFINED EXTRA_INSTALL_FLAGS)
|
|
||||||
IF(NOT "$ENV{SIMPLE_INSTALL_BUILD_TYPE}" MATCHES "^$")
|
|
||||||
SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=$ENV{SIMPLE_INSTALL_BUILD_TYPE})
|
|
||||||
ENDIF(NOT "$ENV{SIMPLE_INSTALL_BUILD_TYPE}" MATCHES "^$")
|
|
||||||
ENDIF(NOT DEFINED EXTRA_INSTALL_FLAGS)
|
|
||||||
ENDIF(CMAKE_GENERATOR MATCHES "^Visual Studio")
|
|
||||||
|
|
||||||
MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}")
|
MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}")
|
||||||
|
|
||||||
IF(STAGE2)
|
IF(STAGE2)
|
||||||
|
@ -94,7 +72,7 @@ ADD_CUSTOM_COMMAND(
|
||||||
TARGET ${install_target}
|
TARGET ${install_target}
|
||||||
POST_BUILD
|
POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND}
|
COMMAND ${CMAKE_COMMAND}
|
||||||
ARGS ${EXTRA_INSTALL_FLAGS}
|
ARGS -DBUILD_TYPE:STRING=${CMAKE_CFG_INTDIR}
|
||||||
-P "${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake"
|
-P "${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake"
|
||||||
COMMENT "Install Project"
|
COMMENT "Install Project"
|
||||||
)
|
)
|
||||||
|
|
|
@ -7,28 +7,6 @@ SET(LIBRARY_OUTPUT_PATH "${EXECUTABLE_OUTPUT_PATH}")
|
||||||
SET(CMAKE_DEBUG_POSTFIX "_test_debug_postfix")
|
SET(CMAKE_DEBUG_POSTFIX "_test_debug_postfix")
|
||||||
|
|
||||||
SET(EXTRA_INSTALL_FLAGS)
|
SET(EXTRA_INSTALL_FLAGS)
|
||||||
IF(CMAKE_GENERATOR MATCHES "^Visual Studio")
|
|
||||||
MESSAGE("CMake generator: ${CMAKE_GENERATOR}")
|
|
||||||
FOREACH(build_type Debug Release RelWithDebInfo MinSizeRel)
|
|
||||||
IF(MAKEPROGRAM MATCHES "/build ${build_type}")
|
|
||||||
SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type})
|
|
||||||
ENDIF(MAKEPROGRAM MATCHES "/build ${build_type}")
|
|
||||||
IF(MAKEPROGRAM MATCHES "- ${build_type}")
|
|
||||||
SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${build_type})
|
|
||||||
ENDIF(MAKEPROGRAM MATCHES "- ${build_type}")
|
|
||||||
ENDFOREACH(build_type)
|
|
||||||
IF(NOT ${EXTRA_INSTALL_FLAGS})
|
|
||||||
IF(BUILD_TYPE)
|
|
||||||
SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=${BUILD_TYPE})
|
|
||||||
ENDIF(BUILD_TYPE)
|
|
||||||
ENDIF(NOT ${EXTRA_INSTALL_FLAGS})
|
|
||||||
IF(NOT DEFINED EXTRA_INSTALL_FLAGS)
|
|
||||||
IF(NOT "$ENV{SIMPLE_INSTALL_BUILD_TYPE}" MATCHES "^$")
|
|
||||||
SET(EXTRA_INSTALL_FLAGS -DBUILD_TYPE=$ENV{SIMPLE_INSTALL_BUILD_TYPE})
|
|
||||||
ENDIF(NOT "$ENV{SIMPLE_INSTALL_BUILD_TYPE}" MATCHES "^$")
|
|
||||||
ENDIF(NOT DEFINED EXTRA_INSTALL_FLAGS)
|
|
||||||
ENDIF(CMAKE_GENERATOR MATCHES "^Visual Studio")
|
|
||||||
|
|
||||||
MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}")
|
MESSAGE("Extra install: ${EXTRA_INSTALL_FLAGS}")
|
||||||
|
|
||||||
IF(STAGE2)
|
IF(STAGE2)
|
||||||
|
@ -94,7 +72,7 @@ ADD_CUSTOM_COMMAND(
|
||||||
TARGET ${install_target}
|
TARGET ${install_target}
|
||||||
POST_BUILD
|
POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND}
|
COMMAND ${CMAKE_COMMAND}
|
||||||
ARGS ${EXTRA_INSTALL_FLAGS}
|
ARGS -DBUILD_TYPE:STRING=${CMAKE_CFG_INTDIR}
|
||||||
-P "${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake"
|
-P "${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake"
|
||||||
COMMENT "Install Project"
|
COMMENT "Install Project"
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue