|
From: Stefano A. <xa...@us...> - 2009-12-22 22:51:18
|
Module: performous
Branch: master
Commit: 0a26c90e3bf7614a99d96cf6c5f25519af181e70
Author: Xaldyz <xa...@us...>
Date: Tue Dec 22 23:51:05 2009 +0100
Added support to adding icon executable for Windows
Modified rc file so it can set directly by CMake
---
game/CMakeLists.txt | 25 +++++++++++++++++++------
win32/performous.cmake.rc | 34 ++++++++++++++++++++++++++++++++++
win32/performous.rc | 36 ------------------------------------
3 files changed, 53 insertions(+), 42 deletions(-)
diff --git a/game/CMakeLists.txt b/game/CMakeLists.txt
index e4aae15..a7f51ab 100644
--- a/game/CMakeLists.txt
+++ b/game/CMakeLists.txt
@@ -4,14 +4,27 @@ FILE(GLOB SOURCE_FILES "*.cc")
FILE(GLOB HEADER_FILES "*.hh")
if(WIN32)
- if(MSVC)
- set(RESOURCE_FILES ../win32/performous.rc)
- else()
- # mingw32 - TODO
- set(RESOURCE_FILES) #nothing
+ set(RESOURCE_FILES "${CMAKE_BINARY_DIR}/performous.rc")
+ set(RESOURCE_OBJECT)#nothing
+
+ configure_file("../win32/performous.cmake.rc" "${RESOURCE_FILES}")
+ if(NOT MSVC)
+ #in according to MinGW tools, we need to compile the rc file, and then link it into projects:
+ #windres foo.rc foores.o
+ #gcc -o foo.exe foo.o foores.o
+ find_program(WINDRES windres)
+ if(NOT WINDRES)
+ message(STATUS "Cannot find windres. Will not create a versioned exe")
+ set(RESOURCE_FILES)
+ set(RESOURCE_OBJECT)
+ else()
+ set(RESOURCE_OBJECT "${CMAKE_BINARY_DIR}/performous.rc.o")
+ execute_process(COMMAND "${WINDRES}" "${RESOURCE_FILES}" "${RESOURCE_OBJECT}")
+ endif(NOT WINDRES)
endif()
else()
set(RESOURCE_FILES) #nothing
+ set(RESOURCE_OBJECT)#nothing
endif()
set(SOURCES ${SOURCE_FILES} ${HEADER_FILES} ${RESOURCE_FILES})
@@ -77,7 +90,7 @@ if(CMAKE_COMPILER_IS_GNUCXX)
add_definitions("-D__STDC_CONSTANT_MACROS")
endif(CMAKE_COMPILER_IS_GNUCXX)
-add_executable(performous ${SOURCES} ${SDL_SOURCES})
+add_executable(performous ${SOURCES} ${SDL_SOURCES} ${RESOURCE_OBJECT})
target_link_libraries(performous ${LIBS})
# Store library paths in executable
diff --git a/win32/performous.cmake.rc b/win32/performous.cmake.rc
new file mode 100644
index 0000000..102d54b
--- /dev/null
+++ b/win32/performous.cmake.rc
@@ -0,0 +1,34 @@
+#include <winuser.h>
+#include <winver.h>
+
+LANGUAGE 9, 1
+
+1 ICON "${CMAKE_SOURCE_DIR}/win32/performous.ico"
+
+VS_VERSION_INFO VERSIONINFO
+ //FILEVERSION 0, 4, 0, 0
+ //PRODUCTVERSION 0, 4, 0, 0
+ FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+ FILEOS VOS_NT_WINDOWS32
+ FILETYPE VFT_APP
+ FILESUBTYPE VFT2_UNKNOWN
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", "@CMAKE_PROJECT_NAME@ Developers"
+ VALUE "FileDescription", "@CMAKE_PROJECT_NAME@ Game"
+ VALUE "FileVersion", "@PROJECT_VERSION@"
+ VALUE "InternalName", "performous.exe"
+ VALUE "LegalCopyright", "Copyright © 2009 @CMAKE_PROJECT_NAME@ Team - GNU GPL v2 or later"
+ VALUE "OriginalFilename", "performous.exe"
+ VALUE "ProductName", "@CMAKE_PROJECT_NAME@"
+ VALUE "ProductVersion", "@PROJECT_VERSION@"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
diff --git a/win32/performous.rc b/win32/performous.rc
deleted file mode 100644
index 8f4b90d..0000000
--- a/win32/performous.rc
+++ /dev/null
@@ -1,36 +0,0 @@
-#include <winuser.h>
-#include <winver.h>
-
-#include "config.hh"
-
-LANGUAGE 9, 1
-
-1 ICON "performous.ico"
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 0, 4, 0, 0
- PRODUCTVERSION 0, 4, 0, 0
- FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
- FILEOS VOS_NT_WINDOWS32
- FILETYPE VFT_APP
- FILESUBTYPE VFT2_UNKNOWN
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "CompanyName", PACKAGE " Developers"
- VALUE "FileDescription", PACKAGE " Game"
- VALUE "FileVersion", VERSION
- VALUE "InternalName", "performous.exe"
- VALUE "LegalCopyright", "Copyright © 2009 " PACKAGE " Team - GNU GPL v2 or later"
- VALUE "OriginalFilename", "performous.exe"
- VALUE "ProductName", PACKAGE
- VALUE "ProductVersion", VERSION
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
-END
|