Merge topic 'add_support_for_windres'
971692c
Build enable_language command during bootstrap960ace1
Add testing for windows resources for mingw/msys/cygwin and remove for watcom.060d6e8
Add support for windres to cygwin.b2f308c
Add support for windows resources with mingw/msys.
This commit is contained in:
commit
3556ab9f72
|
@ -54,6 +54,12 @@ ENDIF(NOT CMAKE_RC_COMPILER)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(CMAKE_RC_COMPILER)
|
MARK_AS_ADVANCED(CMAKE_RC_COMPILER)
|
||||||
|
|
||||||
|
GET_FILENAME_COMPONENT(_CMAKE_RC_COMPILER_NAME_WE ${CMAKE_RC_COMPILER} NAME_WE)
|
||||||
|
IF(_CMAKE_RC_COMPILER_NAME_WE STREQUAL "windres")
|
||||||
|
SET(CMAKE_RC_OUTPUT_EXTENSION .obj)
|
||||||
|
ELSE()
|
||||||
|
SET(CMAKE_RC_OUTPUT_EXTENSION .res)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
# configure variables set in this file for fast reload later on
|
# configure variables set in this file for fast reload later on
|
||||||
CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeRCCompiler.cmake.in
|
CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeRCCompiler.cmake.in
|
||||||
|
|
|
@ -2,5 +2,5 @@ SET(CMAKE_RC_COMPILER "@CMAKE_RC_COMPILER@")
|
||||||
SET(CMAKE_RC_COMPILER_ARG1 "@CMAKE_RC_COMPILER_ARG1@")
|
SET(CMAKE_RC_COMPILER_ARG1 "@CMAKE_RC_COMPILER_ARG1@")
|
||||||
SET(CMAKE_RC_COMPILER_LOADED 1)
|
SET(CMAKE_RC_COMPILER_LOADED 1)
|
||||||
SET(CMAKE_RC_SOURCE_FILE_EXTENSIONS rc)
|
SET(CMAKE_RC_SOURCE_FILE_EXTENSIONS rc)
|
||||||
SET(CMAKE_RC_OUTPUT_EXTENSION .res)
|
SET(CMAKE_RC_OUTPUT_EXTENSION @CMAKE_RC_OUTPUT_EXTENSION@)
|
||||||
SET(CMAKE_RC_COMPILER_ENV_VAR "RC")
|
SET(CMAKE_RC_COMPILER_ENV_VAR "RC")
|
||||||
|
|
|
@ -24,7 +24,8 @@ set(CMAKE_CREATE_WIN32_EXE "-mwindows")
|
||||||
|
|
||||||
set(CMAKE_GNULD_IMAGE_VERSION
|
set(CMAKE_GNULD_IMAGE_VERSION
|
||||||
"-Wl,--major-image-version,<TARGET_VERSION_MAJOR>,--minor-image-version,<TARGET_VERSION_MINOR>")
|
"-Wl,--major-image-version,<TARGET_VERSION_MAJOR>,--minor-image-version,<TARGET_VERSION_MINOR>")
|
||||||
|
set(CMAKE_GENERATOR_RC windres)
|
||||||
|
enable_language(RC)
|
||||||
macro(__cygwin_compiler_gnu lang)
|
macro(__cygwin_compiler_gnu lang)
|
||||||
# Binary link rules.
|
# Binary link rules.
|
||||||
set(CMAKE_${lang}_CREATE_SHARED_MODULE
|
set(CMAKE_${lang}_CREATE_SHARED_MODULE
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
SET(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -O coff <FLAGS> <DEFINES> <SOURCE> <OBJECT>")
|
|
@ -56,6 +56,8 @@ if("${_help}" MATCHES "GNU ld .* 2\\.1[1-6]")
|
||||||
set(__WINDOWS_GNU_LD_RESPONSE 0)
|
set(__WINDOWS_GNU_LD_RESPONSE 0)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
enable_language(RC)
|
||||||
|
|
||||||
macro(__windows_compiler_gnu lang)
|
macro(__windows_compiler_gnu lang)
|
||||||
|
|
||||||
if(MSYS OR MINGW)
|
if(MSYS OR MINGW)
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
SET(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -O coff <FLAGS> <DEFINES> <SOURCE> <OBJECT>")
|
|
@ -32,6 +32,7 @@
|
||||||
#include "cmCreateTestSourceList.cxx"
|
#include "cmCreateTestSourceList.cxx"
|
||||||
#include "cmDefinePropertyCommand.cxx"
|
#include "cmDefinePropertyCommand.cxx"
|
||||||
#include "cmElseCommand.cxx"
|
#include "cmElseCommand.cxx"
|
||||||
|
#include "cmEnableLanguageCommand.cxx"
|
||||||
#include "cmEnableTestingCommand.cxx"
|
#include "cmEnableTestingCommand.cxx"
|
||||||
#include "cmEndForEachCommand.cxx"
|
#include "cmEndForEachCommand.cxx"
|
||||||
#include "cmEndFunctionCommand.cxx"
|
#include "cmEndFunctionCommand.cxx"
|
||||||
|
@ -109,6 +110,7 @@ void GetBootstrapCommands(std::list<cmCommand*>& commands)
|
||||||
commands.push_back(new cmCreateTestSourceList);
|
commands.push_back(new cmCreateTestSourceList);
|
||||||
commands.push_back(new cmDefinePropertyCommand);
|
commands.push_back(new cmDefinePropertyCommand);
|
||||||
commands.push_back(new cmElseCommand);
|
commands.push_back(new cmElseCommand);
|
||||||
|
commands.push_back(new cmEnableLanguageCommand);
|
||||||
commands.push_back(new cmEnableTestingCommand);
|
commands.push_back(new cmEnableTestingCommand);
|
||||||
commands.push_back(new cmEndForEachCommand);
|
commands.push_back(new cmEndForEachCommand);
|
||||||
commands.push_back(new cmEndFunctionCommand);
|
commands.push_back(new cmEndFunctionCommand);
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
#include "cmAuxSourceDirectoryCommand.cxx"
|
#include "cmAuxSourceDirectoryCommand.cxx"
|
||||||
#include "cmBuildNameCommand.cxx"
|
#include "cmBuildNameCommand.cxx"
|
||||||
#include "cmElseIfCommand.cxx"
|
#include "cmElseIfCommand.cxx"
|
||||||
#include "cmEnableLanguageCommand.cxx"
|
|
||||||
#include "cmEndWhileCommand.cxx"
|
#include "cmEndWhileCommand.cxx"
|
||||||
#include "cmExportCommand.cxx"
|
#include "cmExportCommand.cxx"
|
||||||
#include "cmExportLibraryDependencies.cxx"
|
#include "cmExportLibraryDependencies.cxx"
|
||||||
|
@ -54,7 +53,6 @@ void GetPredefinedCommands(std::list<cmCommand*>&
|
||||||
commands.push_back(new cmAuxSourceDirectoryCommand);
|
commands.push_back(new cmAuxSourceDirectoryCommand);
|
||||||
commands.push_back(new cmBuildNameCommand);
|
commands.push_back(new cmBuildNameCommand);
|
||||||
commands.push_back(new cmElseIfCommand);
|
commands.push_back(new cmElseIfCommand);
|
||||||
commands.push_back(new cmEnableLanguageCommand);
|
|
||||||
commands.push_back(new cmEndWhileCommand);
|
commands.push_back(new cmEndWhileCommand);
|
||||||
commands.push_back(new cmExportCommand);
|
commands.push_back(new cmExportCommand);
|
||||||
commands.push_back(new cmExportLibraryDependenciesCommand);
|
commands.push_back(new cmExportLibraryDependenciesCommand);
|
||||||
|
|
|
@ -69,9 +69,16 @@ void cmGlobalMSYSMakefileGenerator
|
||||||
{
|
{
|
||||||
gxx = tgxx;
|
gxx = tgxx;
|
||||||
}
|
}
|
||||||
|
std::string trc = cmSystemTools::FindProgram("windres", locations);
|
||||||
|
std::string rc = "windres.exe";
|
||||||
|
if(trc.size())
|
||||||
|
{
|
||||||
|
rc = trc;
|
||||||
|
}
|
||||||
mf->AddDefinition("MSYS", "1");
|
mf->AddDefinition("MSYS", "1");
|
||||||
mf->AddDefinition("CMAKE_GENERATOR_CC", gcc.c_str());
|
mf->AddDefinition("CMAKE_GENERATOR_CC", gcc.c_str());
|
||||||
mf->AddDefinition("CMAKE_GENERATOR_CXX", gxx.c_str());
|
mf->AddDefinition("CMAKE_GENERATOR_CXX", gxx.c_str());
|
||||||
|
mf->AddDefinition("CMAKE_GENERATOR_RC", rc.c_str());
|
||||||
this->cmGlobalUnixMakefileGenerator3::EnableLanguage(l, mf, optional);
|
this->cmGlobalUnixMakefileGenerator3::EnableLanguage(l, mf, optional);
|
||||||
|
|
||||||
if(!mf->IsSet("CMAKE_AR") &&
|
if(!mf->IsSet("CMAKE_AR") &&
|
||||||
|
|
|
@ -44,8 +44,15 @@ void cmGlobalMinGWMakefileGenerator
|
||||||
{
|
{
|
||||||
gxx = tgxx;
|
gxx = tgxx;
|
||||||
}
|
}
|
||||||
|
std::string trc = cmSystemTools::FindProgram("windres", locations);
|
||||||
|
std::string rc = "windres.exe";
|
||||||
|
if(trc.size())
|
||||||
|
{
|
||||||
|
rc = trc;
|
||||||
|
}
|
||||||
mf->AddDefinition("CMAKE_GENERATOR_CC", gcc.c_str());
|
mf->AddDefinition("CMAKE_GENERATOR_CC", gcc.c_str());
|
||||||
mf->AddDefinition("CMAKE_GENERATOR_CXX", gxx.c_str());
|
mf->AddDefinition("CMAKE_GENERATOR_CXX", gxx.c_str());
|
||||||
|
mf->AddDefinition("CMAKE_GENERATOR_RC", rc.c_str());
|
||||||
this->cmGlobalUnixMakefileGenerator3::EnableLanguage(l, mf, optional);
|
this->cmGlobalUnixMakefileGenerator3::EnableLanguage(l, mf, optional);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -131,7 +131,18 @@ IF(BUILD_TESTING)
|
||||||
ADD_TEST_MACRO(TarTest TarTest)
|
ADD_TEST_MACRO(TarTest TarTest)
|
||||||
ADD_TEST_MACRO(SystemInformation SystemInformation)
|
ADD_TEST_MACRO(SystemInformation SystemInformation)
|
||||||
ADD_TEST_MACRO(MathTest MathTest)
|
ADD_TEST_MACRO(MathTest MathTest)
|
||||||
IF(MSVC)
|
# assume no resources building to test
|
||||||
|
SET(TEST_RESOURCES FALSE)
|
||||||
|
# for windows and cygwin assume we have resources
|
||||||
|
IF(WIN32 OR CYGWIN)
|
||||||
|
SET(TEST_RESOURCES TRUE)
|
||||||
|
ENDIF()
|
||||||
|
# for borland and watcom there is no resource support
|
||||||
|
IF(("${CMAKE_TEST_GENERATOR}" MATCHES "WMake") OR
|
||||||
|
("${CMAKE_TEST_GENERATOR}" MATCHES "Borland"))
|
||||||
|
SET(TEST_RESOURCES FALSE)
|
||||||
|
ENDIF()
|
||||||
|
IF(TEST_RESOURCES)
|
||||||
ADD_TEST_MACRO(VSResource VSResource)
|
ADD_TEST_MACRO(VSResource VSResource)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ADD_TEST_MACRO(Simple Simple)
|
ADD_TEST_MACRO(Simple Simple)
|
||||||
|
|
Loading…
Reference in New Issue