You can subscribe to this list here.
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(25) |
Jul
(288) |
Aug
(119) |
Sep
(31) |
Oct
(59) |
Nov
(458) |
Dec
(359) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2010 |
Jan
(268) |
Feb
(26) |
Mar
(36) |
Apr
(48) |
May
(119) |
Jun
(37) |
Jul
(173) |
Aug
(429) |
Sep
(137) |
Oct
(156) |
Nov
(59) |
Dec
(45) |
| 2011 |
Jan
(398) |
Feb
(257) |
Mar
(49) |
Apr
(5) |
May
(34) |
Jun
(11) |
Jul
(38) |
Aug
(12) |
Sep
(1) |
Oct
(49) |
Nov
(5) |
Dec
(10) |
| 2012 |
Jan
(21) |
Feb
(32) |
Mar
(20) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(173) |
Aug
|
Sep
(25) |
Oct
(6) |
Nov
(44) |
Dec
|
|
From: Tapio V. <aa...@us...> - 2010-07-27 19:25:35
|
Module: performous
Branch: master
Commit: 330f88915c5362c8a05ecda3a5d35bec06bdaf4b
Author: Tapio Vierros <tap...@gm...>
Date: Tue Jul 27 22:24:20 2010 +0300
Make sure paths are unique.
---
game/fs.cc | 54 +++++++++++++++++++++++++++++-------------------------
1 files changed, 29 insertions(+), 25 deletions(-)
diff --git a/game/fs.cc b/game/fs.cc
index 79895c2..e56f471 100644
--- a/game/fs.cc
+++ b/game/fs.cc
@@ -6,6 +6,7 @@
#include <cstdlib>
#include <iostream>
#include <sstream>
+#include <algorithm>
#ifdef _WIN32
#include <windows.h>
@@ -40,31 +41,31 @@ fs::path getConfigDir() {
static bool initialized = false;
if (!initialized) {
initialized = true;
- #ifndef _WIN32
- {
- char const* conf = getenv("XDG_CONFIG_HOME");
- if (conf) dir = fs::path(conf) / "performous";
- else dir = getHomeDir() / ".config" / "performous";
- }
- #else
- {
- //open AppData directory
- std::string str;
- ITEMIDLIST* pidl;
- char AppDir[MAX_PATH];
- HRESULT hRes = SHGetSpecialFolderLocation( NULL, CSIDL_APPDATA|CSIDL_FLAG_CREATE , &pidl );
- if (hRes==NOERROR)
- {
- SHGetPathFromIDList( pidl, AppDir );
- int i;
- for(i = 0; AppDir[i] != '\0'; i++){
- if(AppDir[i] == '\\') str += '/';
- else str += AppDir[i];
- }
- dir = fs::path(str) / "performous";
- }
- }
- #endif
+ #ifndef _WIN32
+ {
+ char const* conf = getenv("XDG_CONFIG_HOME");
+ if (conf) dir = fs::path(conf) / "performous";
+ else dir = getHomeDir() / ".config" / "performous";
+ }
+ #else
+ {
+ //open AppData directory
+ std::string str;
+ ITEMIDLIST* pidl;
+ char AppDir[MAX_PATH];
+ HRESULT hRes = SHGetSpecialFolderLocation( NULL, CSIDL_APPDATA|CSIDL_FLAG_CREATE , &pidl );
+ if (hRes==NOERROR)
+ {
+ SHGetPathFromIDList( pidl, AppDir );
+ int i;
+ for(i = 0; AppDir[i] != '\0'; i++){
+ if(AppDir[i] == '\\') str += '/';
+ else str += AppDir[i];
+ }
+ dir = fs::path(str) / "performous";
+ }
+ }
+ #endif
}
return dir;
}
@@ -174,6 +175,9 @@ Paths const& getPaths(bool refresh) {
// Check if they actually exist and print debug
paths.clear();
std::remove_copy_if(dirs.begin(), dirs.end(), std::inserter(paths, paths.end()), pathNotExist);
+ // Assure that each path appears only once
+ Paths::iterator it = std::unique(paths.begin(), paths.end());
+ paths.resize(it - paths.begin());
}
return paths;
}
|
|
From: Tapio V. <aa...@us...> - 2010-07-26 13:55:31
|
Module: performous Branch: master Commit: 221264956017d8f93a4231dc44dd937758f68370 Author: Tapio Vierros <tap...@gm...> Date: Sat Jul 24 23:40:41 2010 +0300 Add a .gitignore for the cross compilation files. --- win32/cross-from-debian/.gitignore | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/win32/cross-from-debian/.gitignore b/win32/cross-from-debian/.gitignore new file mode 100644 index 0000000..b36ad51 --- /dev/null +++ b/win32/cross-from-debian/.gitignore @@ -0,0 +1,9 @@ +*.tar.gz +*.tar.bz2 +*.tgz +*.zip +deps/* +dist/* +stage/* +wine/* + |
|
From: Yoda-JM <yo...@us...> - 2010-07-26 11:59:39
|
Module: performous
Branch: controllers
Commit: 241801fb0807d83816b1be34297531fa52d73c65
Author: Vincent Le Ligeour <yo...@us...>
Date: Mon Jul 26 13:59:10 2010 +0200
Moved default config file searching inside fs.* files
---
game/configuration.cc | 26 ++++++++------------------
game/fs.cc | 14 ++++++++++++++
game/fs.hh | 3 +++
3 files changed, 25 insertions(+), 18 deletions(-)
diff --git a/game/configuration.cc b/game/configuration.cc
index 194c25f..f108d4b 100644
--- a/game/configuration.cc
+++ b/game/configuration.cc
@@ -1,6 +1,5 @@
#include "configuration.hh"
-#include "config.hh"
#include "fs.hh"
#include "util.hh"
#include <boost/filesystem.hpp>
@@ -311,24 +310,15 @@ void readConfigXML(fs::path const& file, int mode) {
void readConfig() {
// Find config schema
- std::string schemafile;
- {
- typedef std::vector<std::string> ConfigList;
- ConfigList config_list;
- char const* root = getenv("PERFORMOUS_ROOT");
- if (root) config_list.push_back(std::string(root) + "/" SHARED_DATA_DIR CONFIG_SCHEMA);
- fs::path exec = plugin::execname();
- if (!exec.empty()) config_list.push_back(exec.parent_path().string() + "/../" SHARED_DATA_DIR CONFIG_SCHEMA);
- ConfigList::const_iterator it = std::find_if(config_list.begin(), config_list.end(), static_cast<bool(&)(fs::path const&)>(fs::exists));
- if (it == config_list.end()) {
- std::ostringstream oss;
- oss << "No config schema file found. The following locations were tried:\n";
- std::copy(config_list.begin(), config_list.end(), std::ostream_iterator<std::string>(oss, "\n"));
- oss << "Install the file or define environment variable PERFORMOUS_ROOT\n";
- throw std::runtime_error(oss.str());
- }
- schemafile = *it;
+ fs::path schemafile;
+ try {
+ schemafile = getDefaultConfig(fs::path(CONFIG_SCHEMA));
origin = fs::path(schemafile).parent_path().parent_path(); // Assuming that two times parent from config file = origin
+ } catch(...) {
+ std::ostringstream oss;
+ oss << "No config schema file found.\n";
+ oss << "Install the file or define environment variable PERFORMOUS_ROOT\n";
+ throw std::runtime_error(oss.str());
}
readConfigXML(schemafile, 0); // Read schema and defaults
readConfigXML(systemConfFile, 1); // Update defaults with system config
diff --git a/game/fs.cc b/game/fs.cc
index 79895c2..14dd390 100644
--- a/game/fs.cc
+++ b/game/fs.cc
@@ -178,6 +178,20 @@ Paths const& getPaths(bool refresh) {
return paths;
}
+fs::path getDefaultConfig(fs::path const &configFile) {
+ typedef std::vector<std::string> ConfigList;
+ ConfigList config_list;
+ char const* root = getenv("PERFORMOUS_ROOT");
+ if (root) config_list.push_back(std::string(root) + "/" SHARED_DATA_DIR + configFile.string());
+ fs::path exec = plugin::execname();
+ if (!exec.empty()) config_list.push_back(exec.parent_path().string() + "/../" SHARED_DATA_DIR + configFile.string());
+ ConfigList::const_iterator it = std::find_if(config_list.begin(), config_list.end(), static_cast<bool(&)(fs::path const&)>(fs::exists));
+ if (it == config_list.end()) {
+ throw std::runtime_error("Could not find default config file " + configFile.string());
+ }
+ return *it;
+}
+
Paths getPathsConfig(std::string const& confOption) {
Paths ret;
Paths const& paths = getPaths();
diff --git a/game/fs.hh b/game/fs.hh
index 6d8baa2..d0ae238 100644
--- a/game/fs.hh
+++ b/game/fs.hh
@@ -33,6 +33,9 @@ std::string getThemePath(std::string const& filename);
/** Get full path to a share file **/
std::string getPath(fs::path const& filename);
+/** Get full path to a default conguration file **/
+fs::path getDefaultConfig(fs::path const &configFile);
+
typedef std::vector<fs::path> Paths;
/** Get all shared data paths in preference order **/
|
|
From: Yoda-JM <yo...@us...> - 2010-07-26 11:59:37
|
Module: performous Branch: controllers Commit: 4100d6c33a736306a58835bf107f146b4b1f972b Author: Vincent Le Ligeour <yo...@us...> Date: Mon Jul 26 13:57:42 2010 +0200 Merge branch 'master' into controllers --- |
|
From: Yoda-JM <yo...@us...> - 2010-07-26 11:59:34
|
Module: performous Branch: controllers Commit: 6f717b2930e5e0677aba7a2a84e61780b331337b Author: Felix Bertram <fl...@be...> Date: Sun Jul 25 14:41:00 2010 -0700 remove command line parameters from performous-launcher with these, Performous doesn't launch on MacBook Pro w/ 10.5.8 --- osx-utils/resources/performous-launcher | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/osx-utils/resources/performous-launcher b/osx-utils/resources/performous-launcher index a6ff039..102dad7 100755 --- a/osx-utils/resources/performous-launcher +++ b/osx-utils/resources/performous-launcher @@ -3,4 +3,7 @@ dir=$(dirname "$0") export PATH=$PATH:"$dir" export FONTCONFIG_PATH="$dir/../Resources/etc/fonts" -performous 2>&1 --pdev pa19 --mics pa19 +# somehow this doesn't work on a MacBookPro under 10.5.8: +#performous 2>&1 --pdev pa19 --mics pa19 +# TODO: might be a good idea to turn-off all console output +performous |
|
From: Yoda-JM <yo...@us...> - 2010-07-26 11:59:32
|
Module: performous
Branch: controllers
Commit: 999d4941623f91d57b53df3fc1b1e99506ff8fe3
Author: Felix Bertram <fl...@be...>
Date: Sun Jul 25 14:40:21 2010 -0700
fix detection of Wii instruments (guitar, drums)
---
game/joystick.cc | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/game/joystick.cc b/game/joystick.cc
index 35f192f..bccd247 100644
--- a/game/joystick.cc
+++ b/game/joystick.cc
@@ -386,8 +386,8 @@ void input::SDL::init() {
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::GUITAR_RB_XB360);
} else if (name.find("Nintendo") != std::string::npos) {
// "Licensed by Nintendo of America Harmonix Guitar Controller for Nintendo Wii"
- std::cout << " Detected as: RockBand Drums PS3 (Wii Guitar)" << std::endl;
- input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::DRUMS_RB_PS3);
+ std::cout << " Detected as: RockBand Guitar PS3 (Wii Guitar)" << std::endl;
+ input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::GUITAR_RB_PS3);
} else {
std::cout << " Detected as: RockBand Guitar PS3" << std::endl;
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::GUITAR_RB_PS3);
@@ -399,8 +399,8 @@ void input::SDL::init() {
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::DRUMS_RB_XB360);
} else if (name.find("Nintendo") != std::string::npos) {
// Licensed by Nintendo of America Harmonix Drum Controller for Nintendo Wii
- std::cout << " Detected as: RockBand Guitar PS3 (Wii Drums)" << std::endl;
- input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::GUITAR_RB_PS3);
+ std::cout << " Detected as: RockBand Drums PS3 (Wii Drums)" << std::endl;
+ input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::DRUMS_RB_PS3);
} else {
std::cout << " Detected as: RockBand Drums PS3" << std::endl;
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::DRUMS_RB_PS3);
|
|
From: Yoda-JM <yo...@us...> - 2010-07-26 11:59:29
|
Module: performous
Branch: controllers
Commit: fe970e73dcaf6479c8931107a297f05c22e31236
Author: Tapio Vierros <tap...@gm...>
Date: Sat Jul 24 11:08:47 2010 +0300
Add auto-detection for Wii instruments.
---
game/joystick.cc | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/game/joystick.cc b/game/joystick.cc
index 98640c1..35f192f 100644
--- a/game/joystick.cc
+++ b/game/joystick.cc
@@ -381,16 +381,26 @@ void input::SDL::init() {
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::GUITAR_GH);
} else if( name.find("Harmonix Guitar") != std::string::npos ) {
if (name.find("Xbox") != std::string::npos) {
+ // "Harmonix Guitar for Xbox360 (Controller)"
std::cout << " Detected as: RockBand Guitar Xbox360" << std::endl;
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::GUITAR_RB_XB360);
+ } else if (name.find("Nintendo") != std::string::npos) {
+ // "Licensed by Nintendo of America Harmonix Guitar Controller for Nintendo Wii"
+ std::cout << " Detected as: RockBand Drums PS3 (Wii Guitar)" << std::endl;
+ input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::DRUMS_RB_PS3);
} else {
std::cout << " Detected as: RockBand Guitar PS3" << std::endl;
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::GUITAR_RB_PS3);
}
- } else if( name.find("Harmonix Drum Kit") != std::string::npos || name.find("Harmonix Drum kit") != std::string::npos) {
+ } else if( name.find("Harmonix Drum") != std::string::npos) {
+ // Kit / kit / Controller
if (name.find("Xbox") != std::string::npos) {
std::cout << " Detected as: RockBand Drums Xbox360" << std::endl;
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::DRUMS_RB_XB360);
+ } else if (name.find("Nintendo") != std::string::npos) {
+ // Licensed by Nintendo of America Harmonix Drum Controller for Nintendo Wii
+ std::cout << " Detected as: RockBand Guitar PS3 (Wii Drums)" << std::endl;
+ input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::GUITAR_RB_PS3);
} else {
std::cout << " Detected as: RockBand Drums PS3" << std::endl;
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::DRUMS_RB_PS3);
|
|
From: Yoda-JM <yo...@us...> - 2010-07-26 11:22:33
|
Module: performous
Branch: controllers
Commit: 738cadc9f01b78d2af738d83e2c8cc1624808dcd
Author: Vincent Le Ligeour <yo...@us...>
Date: Mon Jul 26 13:20:15 2010 +0200
Added controllers description configuration file
---
data/CMakeLists.txt | 2 +
data/controllers.xml | 188 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 190 insertions(+), 0 deletions(-)
diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
index f5bc718..3686029 100644
--- a/data/CMakeLists.txt
+++ b/data/CMakeLists.txt
@@ -1,6 +1,7 @@
set(APPLICATION_FILE "performous.desktop")
set(PIXMAP_FILE "performous.xpm")
set(CONFIG_FILE "schema.xml")
+set(CONTROLLERS_FILE "controllers.xml")
if(UNIX)
install(FILES ${APPLICATION_FILE} DESTINATION "share/applications/")
@@ -8,6 +9,7 @@ if(UNIX)
endif(UNIX)
install(FILES ${CONFIG_FILE} DESTINATION "${SHARE_INSTALL}/config/")
+install(FILES ${CONTROLLERS_FILE} DESTINATION "${SHARE_INSTALL}/config/")
file(GLOB XSL_FILES "*.xsl")
install(FILES ${XSL_FILES} DESTINATION "${SHARE_INSTALL}/xsl/")
diff --git a/data/controllers.xml b/data/controllers.xml
new file mode 100644
index 0000000..7129607
--- /dev/null
+++ b/data/controllers.xml
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<controllers>
+ <guitar name="GUITAR_GH">
+ <match>
+ <description>Guitar Hero 3 guitar</description>
+ <regexp match="Guitar Hero3" />
+ </match>
+ <mapping>
+ <button id="0" value="yellow" />
+ <button id="1" value="green" />
+ <button id="2" value="red" />
+ <button id="3" value="blue" />
+ <button id="4" value="orange" />
+ <button id="5" value="godmode" />
+ <button id="8" value="select" />
+ <button id="9" value="start" />
+ </mapping>
+ </guitar>
+ <guitar name="GUITAR_RB_XBOX360">
+ <match>
+ <description>Guitar Hero X-plorer guitar</description>
+ <regexp match="Guitar Hero X-plorer" />
+ </match>
+ <match>
+ <description>Rock Band guitar Xbox 360</description>
+ <regexp match="Harmonix Guitar .* Xbox" />
+ </match>
+ <mapping>
+ <button id="0" value="green" />
+ <button id="1" value="red" />
+ <button id="2" value="blue" />
+ <button id="3" value="yellow" />
+ <button id="4" value="orange" />
+ <button id="6" value="select" />
+ <button id="7" value="start" />
+ </mapping>
+ </guitar>
+ <guitar name="GUITAR_RB_PS3">
+ <match>
+ <description>Rock Band guitar PS3</description>
+ <regexp match="Harmonix Guitar .* PlayStation" />
+ </match>
+ <mapping>
+ <button id="0" value="blue" />
+ <button id="1" value="green" />
+ <button id="2" value="red" />
+ <button id="3" value="yellow" />
+ <button id="4" value="orange" />
+ <button id="5" value="godmode" />
+ <button id="8" value="select" />
+ <button id="9" value="start" />
+ </mapping>
+ </guitar>
+ <guitar name="GUITAR_HAMA_PS2">
+ <match>
+ <description>Hama Guitar for PS2 with converter</description>
+ <regexp match="PS Converter" />
+ </match>
+ <mapping>
+ <button id="0" value="yellow" />
+ <button id="1" value="red" />
+ <button id="2" value="blue" />
+ <button id="3" value="orange" />
+ <button id="4" value="godmode" />
+ <button id="5" value="green" />
+ <button id="8" value="select" />
+ <button id="9" value="start" />
+ </mapping>
+ </guitar>
+ <drumkit name="DRUMS_GH">
+ <match>
+ <description>Guitar Hero 4 drum kit (guessed, could be a guitar)</description>
+ <regexp match="Guitar Hero4" />
+ </match>
+ <mapping>
+ <button id="0" value="blue" />
+ <button id="1" value="green" />
+ <button id="2" value="red" />
+ <button id="3" value="yellow" />
+ <button id="4" value="kick" />
+ <button id="5" value="green" />
+ <button id="8" value="select" />
+ <button id="9" value="start" />
+ </mapping>
+ </drumkit>
+ <drumkit name="DRUMS_RB_PS3">
+ <match>
+ <description>RockBand Wii drum kit</description>
+ <regexp match="Harmonix Drum Controller for Nintendo Wii" />
+ </match>
+ <match>
+ <description>RockBand PS3 drum kit</description>
+ <regexp match="Harmonix Drum [Kk]it for Playstation" />
+ </match>
+ <mapping>
+ <button id="0" value="blue" />
+ <button id="1" value="green" />
+ <button id="2" value="red" />
+ <button id="3" value="yellow" />
+ <button id="4" value="kick" />
+ <button id="8" value="select" />
+ <button id="9" value="start" />
+ </mapping>
+ </drumkit>
+ <drumkit name="DRUMS_RB_XB360">
+ <match>
+ <description>RockBand XBox drum kit</description>
+ <regexp match="Harmonix Drum [Kk]it for Xbox" />
+ </match>
+ <mapping>
+ <button id="0" value="green" />
+ <button id="1" value="red" />
+ <button id="2" value="blue" />
+ <button id="3" value="yellow" />
+ <button id="4" value="kick" />
+ <button id="6" value="select" />
+ <button id="7" value="start" />
+ </mapping>
+ </drumkit>
+ <dancepad name="DANCEPAD_GENERIC">
+ <match>
+ <description>Generic dancepad</description>
+ <regexp match="Dance mat|RedOctane USB Pad|Redoctane XBOX DDR|Positive Gaming Impact USB pad" />
+ </match>
+ <mapping>
+ <button id="0" value="left" />
+ <button id="1" value="down" />
+ <button id="2" value="up" />
+ <button id="3" value="right" />
+ <button id="4" value="up-left" />
+ <button id="5" value="up-right" />
+ <button id="6" value="down-left" />
+ <button id="7" value="down-right" />
+ <button id="8" value="select" />
+ <button id="9" value="start" />
+ </mapping>
+ </dancepad>
+ <dancepad name="DANCEPAD_TIGERGAME">
+ <match>
+ <description>TigerGame dancepad</description>
+ <regexp match="TigerGame" />
+ </match>
+ <mapping>
+ <button id="0" value="select" />
+ <button id="1" value="start" />
+ <button id="8" value="left" />
+ <button id="9" value="right" />
+ <button id="10" value="down" />
+ <button id="11" value="up" />
+ </mapping>
+ </dancepad>
+ <dancepad name="DANCEPAD_EMS2">
+ <match>
+ <description>EMS PS2/PC dancepad adapter</description>
+ <regexp match="0b43:0003" />
+ </match>
+ <mapping>
+ <button id="0" value="down-left" />
+ <button id="1" value="up-right" />
+ <button id="2" value="up-left" />
+ <button id="3" value="down-right" />
+ <button id="8" value="select" />
+ <button id="9" value="start" />
+ <button id="12" value="up" />
+ <button id="13" value="right" />
+ <button id="14" value="down" />
+ <button id="15" value="left" />
+ </mapping>
+ </dancepad>
+ <dancepad name="DANCEPAD_2TECH">
+ <match>
+ <description>2-tech usb dancepad</description>
+ <regexp match="USB Gamepad" />
+ </match>
+ <mapping>
+ <button id="0" value="left" />
+ <button id="1" value="down" />
+ <button id="2" value="up" />
+ <button id="3" value="right" />
+ <button id="4" value="up-left" />
+ <button id="5" value="up-right" />
+ <button id="6" value="down-left" />
+ <button id="7" value="down-right" />
+ <button id="8" value="start" />
+ <button id="9" value="select" />
+ </mapping>
+ </dancepad>
+</controllers>
|
|
From: Felix B. <fbe...@us...> - 2010-07-25 21:43:56
|
Module: performous Branch: master Commit: 6f717b2930e5e0677aba7a2a84e61780b331337b Author: Felix Bertram <fl...@be...> Date: Sun Jul 25 14:41:00 2010 -0700 remove command line parameters from performous-launcher with these, Performous doesn't launch on MacBook Pro w/ 10.5.8 --- osx-utils/resources/performous-launcher | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/osx-utils/resources/performous-launcher b/osx-utils/resources/performous-launcher index a6ff039..102dad7 100755 --- a/osx-utils/resources/performous-launcher +++ b/osx-utils/resources/performous-launcher @@ -3,4 +3,7 @@ dir=$(dirname "$0") export PATH=$PATH:"$dir" export FONTCONFIG_PATH="$dir/../Resources/etc/fonts" -performous 2>&1 --pdev pa19 --mics pa19 +# somehow this doesn't work on a MacBookPro under 10.5.8: +#performous 2>&1 --pdev pa19 --mics pa19 +# TODO: might be a good idea to turn-off all console output +performous |
|
From: Felix B. <fbe...@us...> - 2010-07-25 21:43:54
|
Module: performous
Branch: master
Commit: 999d4941623f91d57b53df3fc1b1e99506ff8fe3
Author: Felix Bertram <fl...@be...>
Date: Sun Jul 25 14:40:21 2010 -0700
fix detection of Wii instruments (guitar, drums)
---
game/joystick.cc | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/game/joystick.cc b/game/joystick.cc
index 35f192f..bccd247 100644
--- a/game/joystick.cc
+++ b/game/joystick.cc
@@ -386,8 +386,8 @@ void input::SDL::init() {
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::GUITAR_RB_XB360);
} else if (name.find("Nintendo") != std::string::npos) {
// "Licensed by Nintendo of America Harmonix Guitar Controller for Nintendo Wii"
- std::cout << " Detected as: RockBand Drums PS3 (Wii Guitar)" << std::endl;
- input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::DRUMS_RB_PS3);
+ std::cout << " Detected as: RockBand Guitar PS3 (Wii Guitar)" << std::endl;
+ input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::GUITAR_RB_PS3);
} else {
std::cout << " Detected as: RockBand Guitar PS3" << std::endl;
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::GUITAR_RB_PS3);
@@ -399,8 +399,8 @@ void input::SDL::init() {
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::DRUMS_RB_XB360);
} else if (name.find("Nintendo") != std::string::npos) {
// Licensed by Nintendo of America Harmonix Drum Controller for Nintendo Wii
- std::cout << " Detected as: RockBand Guitar PS3 (Wii Drums)" << std::endl;
- input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::GUITAR_RB_PS3);
+ std::cout << " Detected as: RockBand Drums PS3 (Wii Drums)" << std::endl;
+ input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::DRUMS_RB_PS3);
} else {
std::cout << " Detected as: RockBand Drums PS3" << std::endl;
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::DRUMS_RB_PS3);
|
|
From: Tapio V. <aa...@us...> - 2010-07-24 08:09:30
|
Module: performous
Branch: master
Commit: fe970e73dcaf6479c8931107a297f05c22e31236
Author: Tapio Vierros <tap...@gm...>
Date: Sat Jul 24 11:08:47 2010 +0300
Add auto-detection for Wii instruments.
---
game/joystick.cc | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/game/joystick.cc b/game/joystick.cc
index 98640c1..35f192f 100644
--- a/game/joystick.cc
+++ b/game/joystick.cc
@@ -381,16 +381,26 @@ void input::SDL::init() {
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::GUITAR_GH);
} else if( name.find("Harmonix Guitar") != std::string::npos ) {
if (name.find("Xbox") != std::string::npos) {
+ // "Harmonix Guitar for Xbox360 (Controller)"
std::cout << " Detected as: RockBand Guitar Xbox360" << std::endl;
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::GUITAR_RB_XB360);
+ } else if (name.find("Nintendo") != std::string::npos) {
+ // "Licensed by Nintendo of America Harmonix Guitar Controller for Nintendo Wii"
+ std::cout << " Detected as: RockBand Drums PS3 (Wii Guitar)" << std::endl;
+ input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::DRUMS_RB_PS3);
} else {
std::cout << " Detected as: RockBand Guitar PS3" << std::endl;
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::GUITAR_RB_PS3);
}
- } else if( name.find("Harmonix Drum Kit") != std::string::npos || name.find("Harmonix Drum kit") != std::string::npos) {
+ } else if( name.find("Harmonix Drum") != std::string::npos) {
+ // Kit / kit / Controller
if (name.find("Xbox") != std::string::npos) {
std::cout << " Detected as: RockBand Drums Xbox360" << std::endl;
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::DRUMS_RB_XB360);
+ } else if (name.find("Nintendo") != std::string::npos) {
+ // Licensed by Nintendo of America Harmonix Drum Controller for Nintendo Wii
+ std::cout << " Detected as: RockBand Guitar PS3 (Wii Drums)" << std::endl;
+ input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::GUITAR_RB_PS3);
} else {
std::cout << " Detected as: RockBand Drums PS3" << std::endl;
input::detail::devices[i] = input::detail::InputDevPrivate(input::detail::DRUMS_RB_PS3);
|
|
From: Tapio V. <aa...@us...> - 2010-07-22 15:37:08
|
Module: performous Branch: portaudio Commit: 395e40fc605c707dbcc2cb9bb28260c5c458028f Author: Tapio Vierros <tap...@gm...> Date: Thu Jul 22 18:31:24 2010 +0300 Merge branch 'master' into portaudio --- |
|
From: Tapio V. <aa...@us...> - 2010-07-22 15:37:05
|
Module: performous Branch: portaudio Commit: 454127977b4216f1f4874ab5c481f3f75e1154cb Author: John Stumpo <st...@js...> Date: Wed Jul 21 16:14:40 2010 -0400 Merge remote branch 'origin/master' --- |
|
From: Tapio V. <aa...@us...> - 2010-07-22 15:37:00
|
Module: performous
Branch: portaudio
Commit: 5ad067bd0953dbba3b3964bbd2e412c5e07aa1ce
Author: Vincent Le Ligeour <yo...@us...>
Date: Wed Jul 21 12:45:28 2010 +0200
Added explicit webcam/midi disabling
---
game/CMakeLists.txt | 36 ++++++++++++--------
.../games-arcade/performous/performous-9999.ebuild | 4 ++
2 files changed, 26 insertions(+), 14 deletions(-)
diff --git a/game/CMakeLists.txt b/game/CMakeLists.txt
index 17a11e7..5a4fa1f 100644
--- a/game/CMakeLists.txt
+++ b/game/CMakeLists.txt
@@ -96,24 +96,32 @@ else()
message(STATUS "Internationalization: Disabled (libintl not found)")
endif()
-find_package(PortMidi)
-if(PortMidi_FOUND)
- include_directories(${PortMidi_INCLUDE_DIRS})
- list(APPEND LIBS ${PortMidi_LIBRARIES})
- add_definitions("-DUSE_PORTMIDI")
- message(STATUS "MIDI I/O: Enabled")
+if(NOT NO_PORTMIDI)
+ find_package(PortMidi)
+ if(PortMidi_FOUND)
+ include_directories(${PortMidi_INCLUDE_DIRS})
+ list(APPEND LIBS ${PortMidi_LIBRARIES})
+ add_definitions("-DUSE_PORTMIDI")
+ message(STATUS "MIDI I/O: Enabled")
+ else()
+ message(STATUS "MIDI I/O: Disabled (libportmidi not found)")
+ endif()
else()
- message(STATUS "MIDI I/O: Disabled (libportmidi not found)")
+ message(STATUS "MIDI I/O: Disabled (explicitly disabled)")
endif()
-find_package(OpenCV)
-if(OpenCV_FOUND)
- include_directories(${OpenCV_INCLUDE_DIRS})
- list(APPEND LIBS ${OpenCV_LIBRARIES})
- add_definitions("-DUSE_OPENCV")
- message(STATUS "Webcam support: Enabled")
+if(NOT NO_WEBCAM)
+ find_package(OpenCV)
+ if(OpenCV_FOUND)
+ include_directories(${OpenCV_INCLUDE_DIRS})
+ list(APPEND LIBS ${OpenCV_LIBRARIES})
+ add_definitions("-DUSE_OPENCV")
+ message(STATUS "Webcam support: Enabled")
+ else()
+ message(STATUS "Webcam support: Disabled (libcv/libhighgui not found)")
+ endif()
else()
- message(STATUS "Webcam support: Disabled (libcv/libhighgui not found)")
+ message(STATUS "Webcam support: Disabled (explicitly disabled)")
endif()
diff --git a/portage-overlay/games-arcade/performous/performous-9999.ebuild b/portage-overlay/games-arcade/performous/performous-9999.ebuild
index ba82507..d2a1ad5 100644
--- a/portage-overlay/games-arcade/performous/performous-9999.ebuild
+++ b/portage-overlay/games-arcade/performous/performous-9999.ebuild
@@ -91,12 +91,16 @@ src_configure() {
$(cmake-utils_use pulseaudio LibDA_PLUGIN_PULSEAUDIO)
$(cmake-utils_use_enable tools TOOLS)
$(cmake-utils_use_enable editor EDITOR)
+ $(cmake-utils_use_no webcam WEBCAM)
-DCMAKE_INSTALL_PREFIX=${GAMES_PREFIX}
-DSHARE_INSTALL=share/performous
-DLOCALE_DIR=/usr/share
-DLIBDA_AUTODETECT_PLUGINS=false
-DLIBDA_PLUGIN_TESTING=false
-DCMAKE_BUILD_TYPE=Release"
+# local mycmakeargs="
+# $(cmake-utils_use_no midi MIDI)
+# ${mycmakeargs}"
cmake-utils_src_configure
}
|
|
From: Tapio V. <aa...@us...> - 2010-07-22 15:36:58
|
Module: performous Branch: portaudio Commit: 7bf290f86dbae6e0244d2c1d758f56368095b8b8 Author: Vincent Le Ligeour <yo...@us...> Date: Wed Jul 21 02:22:56 2010 +0200 Added master default to ebuild --- .../games-arcade/performous/performous-9999.ebuild | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/portage-overlay/games-arcade/performous/performous-9999.ebuild b/portage-overlay/games-arcade/performous/performous-9999.ebuild index d979e5f..ba82507 100644 --- a/portage-overlay/games-arcade/performous/performous-9999.ebuild +++ b/portage-overlay/games-arcade/performous/performous-9999.ebuild @@ -25,6 +25,7 @@ if [ "$PV" != "9999" ]; then $SRC_URI" else EGIT_REPO_URI="git://performous.git.sourceforge.net/gitroot/performous/performous" + EGIT_BRANCH="master" fi LICENSE="GPL-2 |
|
From: Tapio V. <aa...@us...> - 2010-07-22 15:36:55
|
Module: performous
Branch: portaudio
Commit: 879d759f08cbede4fa3eb532cb52560af5b21230
Author: John Stumpo <st...@js...>
Date: Sat Jun 26 03:51:59 2010 -0400
Add Add/Remove Programs information to the installer.
---
win32/cross-from-debian/makepackage.py | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/win32/cross-from-debian/makepackage.py b/win32/cross-from-debian/makepackage.py
index f422145..4ff134a 100755
--- a/win32/cross-from-debian/makepackage.py
+++ b/win32/cross-from-debian/makepackage.py
@@ -89,6 +89,10 @@ makensis.stdin.write(r''' WriteRegStr HKLM "Software\Performous" "" "$INSTDIR"
CreateDirectory "$SMPROGRAMS\Performous"
CreateShortcut "$SMPROGRAMS\Performous\Performous.lnk" "$INSTDIR\bin\performous.exe"
CreateShortcut "$SMPROGRAMS\Performous\Uninstall.lnk" "$INSTDIR\uninst.exe"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Performous" "DisplayName" "Performous"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Performous" "UninstallString" "$\"$INSTDIR\uninst.exe$\""
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Performous" "DisplayIcon" "$INSTDIR\bin\performous.exe"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Performous" "DisplayVersion" "${VERSION}"
SectionEnd
Section Uninstall
@@ -107,6 +111,7 @@ makensis.stdin.write(r''' Delete "$INSTDIR\uninst.exe"
Delete "$SMPROGRAMS\Performous\Performous.lnk"
Delete "$SMPROGRAMS\Performous\Uninstall.lnk"
RmDir "$SMPROGRAMS\Performous"
+ DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Performous"
DeleteRegKey /ifempty HKLM "Software\Performous"
SectionEnd
''')
|
|
From: Tapio V. <aa...@us...> - 2010-07-22 15:36:52
|
Module: performous
Branch: portaudio
Commit: cf6864f80dec1afb6897ef779bb609aed9c160d6
Author: John Stumpo <st...@js...>
Date: Sat Jun 26 03:31:05 2010 -0400
Add Start menu entries to the installer.
---
win32/cross-from-debian/makepackage.py | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/win32/cross-from-debian/makepackage.py b/win32/cross-from-debian/makepackage.py
index 2ad6342..f422145 100755
--- a/win32/cross-from-debian/makepackage.py
+++ b/win32/cross-from-debian/makepackage.py
@@ -85,6 +85,10 @@ for root, dirs, files in os.walk('.'):
makensis.stdin.write(r''' WriteRegStr HKLM "Software\Performous" "" "$INSTDIR"
WriteUninstaller "$INSTDIR\uninst.exe"
+ SetShellVarContext all
+ CreateDirectory "$SMPROGRAMS\Performous"
+ CreateShortcut "$SMPROGRAMS\Performous\Performous.lnk" "$INSTDIR\bin\performous.exe"
+ CreateShortcut "$SMPROGRAMS\Performous\Uninstall.lnk" "$INSTDIR\uninst.exe"
SectionEnd
Section Uninstall
@@ -99,6 +103,10 @@ for root, dirs, files in os.walk('.', topdown=False):
makensis.stdin.write(r''' Delete "$INSTDIR\uninst.exe"
RmDir "$INSTDIR"
+ SetShellVarContext all
+ Delete "$SMPROGRAMS\Performous\Performous.lnk"
+ Delete "$SMPROGRAMS\Performous\Uninstall.lnk"
+ RmDir "$SMPROGRAMS\Performous"
DeleteRegKey /ifempty HKLM "Software\Performous"
SectionEnd
''')
|
|
From: Tapio V. <aa...@us...> - 2010-07-22 15:36:49
|
Module: performous Branch: portaudio Commit: 6e3607a9d3914f47fe15a5fbdb7ebf7c8595ca2b Author: John Stumpo <st...@js...> Date: Sat Jun 26 03:12:23 2010 -0400 Add some notes about the cross-compilation setup. --- win32/cross-from-debian/README | 59 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 59 insertions(+), 0 deletions(-) diff --git a/win32/cross-from-debian/README b/win32/cross-from-debian/README new file mode 100644 index 0000000..cebc77c --- /dev/null +++ b/win32/cross-from-debian/README @@ -0,0 +1,59 @@ +These scripts were developed under Debian's mingw32 environment with the +wine package (and associated binfmt_misc rule, which is part of the package) +installed, so some programs do not detect that they are being cross-compiled +and attempt to run just-compiled programs because this works when the scripts +use the ".exe" suffix when they try to do so (as autoconf scripts do). So +we occasionally generate a shell script wrapper under the non-.exe name that +execs wine to satisfy scripts that fail to use ".exe" (some scripts do this +because it's perfectly OK to do this under Windows). + +For pkg-config handling, we simply wrap the *host* pkg-config in a shell +script that execs it with options causing it to look absolutely nowhere other +than deps/lib/pkgconfig for .pc files and we place that script earlier on the +PATH. This very neatly avoids the glib/pkg-config chicken-and-egg problem +that exists under Windows, though we don't bother building a Windows +pkg-config at all since we don't need it. + +The makedeps.sh script builds the dependencies under ./deps and places stamp +files in deps/build-stamps so it doesn't have to keep rebuilding the same +things if it is interrupted or experiences an error halfway through. You can +force a single package to be rebuilt by deleting the appropriate stamp file +and re-running makedeps.sh. (You might do this, for example, to get newer +ffmpeg code, as makedeps.sh builds the latest SVN of ffmpeg at the time the +script is run.) + +Once the dependencies are built, run makebuilddir.sh to invoke cmake with the +appropriate arguments for cross-compilation. (Arguments to makebuilddir.sh +are passed intact to cmake after the arguments the script itself passes but +before the final argument [the source directory], which the script provides +for you.) It is up to you to run "make" and "make install" in the ./build +directory (installation will occur to ./stage) after running makebuilddir.sh +to set up ./build appropriately. + +(Regarding installation, it is a good idea to delete or rename ./stage if it +exists before running "make install" so obsolete files aren't accidentally +included in the package you are building.) + +The copydlls.py script takes two directories as arguments and copies any DLLs +it can find in the first directory that are needed by PE executables in the +second directory into the second directory. + +The makepackage.py script creates an executable installer from the contents of +./stage using NSIS (NSIS can be built under non-Windows systems for use as a +cross-compiler, and many Linux distros package it in this form) and places it +into ./dist for your testing and distributing pleasure. + +In summary: + $ ./makedeps.sh + $ ./makebuilddir.sh + $ cd build + $ make + $ make install + $ cd .. + $ ./copydlls.py ./deps/bin ./stage/bin + [strip the binaries in ./stage/bin if you want] + $ ./makepackage.py + [test the file generated in ./dist] + [distribute said file if everything looks good] + +Happy cross-building! |
|
From: Tapio V. <aa...@us...> - 2010-07-22 15:36:47
|
Module: performous Branch: portaudio Commit: 25c741381324761dc21dccd299cad150934eacb0 Author: John Stumpo <st...@js...> Date: Sat Jun 26 03:10:36 2010 -0400 Add a script to generate a simple NSIS installer from the staged installation. As it is, it works (it installs and uninstalls just fine) but could use a bit of extra love. (Start menu entries and an Add/Remove Programs entry come to mind.) --- win32/cross-from-debian/makepackage.py | 111 ++++++++++++++++++++++++++++++++ 1 files changed, 111 insertions(+), 0 deletions(-) diff --git a/win32/cross-from-debian/makepackage.py b/win32/cross-from-debian/makepackage.py new file mode 100755 index 0000000..2ad6342 --- /dev/null +++ b/win32/cross-from-debian/makepackage.py @@ -0,0 +1,111 @@ +#!/usr/bin/env python +# NSIS script generator for Performous. +# Copyright (C) 2010 John Stumpo +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +import os +import subprocess +import sys + +try: + makensis = subprocess.Popen([os.environ['MAKENSIS'], '-'], stdin=subprocess.PIPE) +except KeyError: + makensis = subprocess.Popen(['makensis', '-'], stdin=subprocess.PIPE) + +if not os.path.isdir('dist'): + os.mkdir('dist') +os.chdir('stage') + +# Find the version number. +try: + resources = subprocess.Popen([os.environ['WINDRES'], 'bin/performous.exe'], stdout=subprocess.PIPE) +except: + try: + resources = subprocess.Popen(['windres', 'bin/performous.exe'], stdout=subprocess.PIPE) + except: + resources = subprocess.Popen(['i586-mingw32msvc-windres', 'bin/performous.exe'], stdout=subprocess.PIPE) +for line in resources.stdout.readlines(): + if not line.strip().startswith('VALUE'): + continue + if 'ProductVersion' in line: + version = line.strip().split('"')[-2] + break +else: + version = 'unknown' + + +makensis.stdin.write(r'''!include "MUI2.nsh" + +!define VERSION "%s" + +Name "Performous ${VERSION}" +OutFile "dist\Performous-${VERSION}-win32.exe" + +SetCompressor /SOLID lzma + +ShowInstDetails show +ShowUninstDetails show + +InstallDir "$PROGRAMFILES\Performous" +InstallDirRegKey HKLM "Software\Performous" "" + +RequestExecutionLevel admin + +!insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_DIRECTORY +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_PAGE_FINISH + +!insertmacro MUI_UNPAGE_WELCOME +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES +!insertmacro MUI_UNPAGE_FINISH + +!insertmacro MUI_LANGUAGE "English" + +Section +''' % version) + +for root, dirs, files in os.walk('.'): + makensis.stdin.write(' SetOutPath "$INSTDIR\\%s"\n' % root.replace('/', '\\')) + for file in files: + makensis.stdin.write(' File "%s"\n' % os.path.join('stage', root, file).replace('/', '\\')) + +makensis.stdin.write(r''' WriteRegStr HKLM "Software\Performous" "" "$INSTDIR" + WriteUninstaller "$INSTDIR\uninst.exe" +SectionEnd + +Section Uninstall +''') + +for root, dirs, files in os.walk('.', topdown=False): + for dir in dirs: + makensis.stdin.write(' RmDir "$INSTDIR\\%s"\n' % os.path.join(root, dir).replace('/', '\\')) + for file in files: + makensis.stdin.write(' Delete "$INSTDIR\\%s"\n' % os.path.join(root, file).replace('/', '\\')) + makensis.stdin.write(' RmDir "$INSTDIR\\%s"\n' % root.replace('/', '\\')) + +makensis.stdin.write(r''' Delete "$INSTDIR\uninst.exe" + RmDir "$INSTDIR" + DeleteRegKey /ifempty HKLM "Software\Performous" +SectionEnd +''') + +makensis.stdin.close() +if makensis.wait() != 0: + print >>sys.stderr, 'Installer compilation failed.' + sys.exit(1) +else: + print '\ndist/Performous-%s-win32.exe is ready.' % version |
|
From: Tapio V. <aa...@us...> - 2010-07-22 15:36:45
|
Module: performous
Branch: portaudio
Commit: 63b6b919986640641e0da358b58e4ce6d0f619a7
Author: John Stumpo <st...@js...>
Date: Sat Jun 26 02:19:13 2010 -0400
Tell cmake where it can find windres so we get the icon in a cross-build.
---
win32/cross-from-debian/Toolchain.cmake | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/win32/cross-from-debian/Toolchain.cmake b/win32/cross-from-debian/Toolchain.cmake
index 0b79ba4..41cf6f8 100644
--- a/win32/cross-from-debian/Toolchain.cmake
+++ b/win32/cross-from-debian/Toolchain.cmake
@@ -14,3 +14,5 @@ set(CMAKE_FIND_ROOT_PATH /usr/i586-mingw32msvc ${CMAKE_CURRENT_SOURCE_DIR}/win32
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+
+set(WINDRES i586-mingw32msvc-windres)
|
|
From: Tapio V. <aa...@us...> - 2010-07-22 15:36:42
|
Module: performous Branch: portaudio Commit: 1cdc9b4b77e0ac89a4acf3ee3f5d35ae4eddba65 Author: John Stumpo <st...@js...> Date: Fri Jun 25 22:45:37 2010 -0400 Add a script to copy the necessary dependency DLLs into what will become the released package. --- win32/cross-from-debian/copydlls.py | 116 +++++++++++++++++++++++++++++++++++ 1 files changed, 116 insertions(+), 0 deletions(-) diff --git a/win32/cross-from-debian/copydlls.py b/win32/cross-from-debian/copydlls.py new file mode 100755 index 0000000..ac2b8b3 --- /dev/null +++ b/win32/cross-from-debian/copydlls.py @@ -0,0 +1,116 @@ +#!/usr/bin/env python +# DLL dependency resolution and copying script. +# Copyright (C) 2010 John Stumpo +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +import os +import shutil +import struct +import sys + +if len(sys.argv) != 3: + sys.stderr.write('''Usage: %s [source] [destination] +Copies DLLs in source needed by PE executables in destination to destination. +Both source and destination should be directories. +''' % sys.argv[0]) + sys.exit(1) + +def is_pe_file(file): + f = open(file, 'rb') + if f.read(2) != 'MZ': + return False # DOS magic number not present + f.seek(60) + peoffset = struct.unpack('<L', f.read(4))[0] + f.seek(peoffset) + if f.read(4) != 'PE\0\0': + return False # PE magic number not present + return True + +def get_imports(file): + f = open(file, 'rb') + # We already know it's a PE, so don't bother checking again. + f.seek(60) + pe_header_offset = struct.unpack('<L', f.read(4))[0] + + # Get sizes of tables we need. + f.seek(pe_header_offset + 6) + number_of_sections = struct.unpack('<H', f.read(2))[0] + f.seek(pe_header_offset + 116) + number_of_data_directory_entries = struct.unpack('<L', f.read(4))[0] + data_directory_offset = f.tell() # it's right after the number of entries + + # Where is the import table? + f.seek(data_directory_offset + 8) + rva_of_import_table = struct.unpack('<L', f.read(4))[0] + + # Get the section ranges so we can convert RVAs to file offsets. + f.seek(data_directory_offset + 8 * number_of_data_directory_entries) + sections = [] + for i in range(number_of_sections): + section_descriptor_data = f.read(40) + name, size, va, rawsize, offset = struct.unpack('<8sLLLL', section_descriptor_data[:24]) + sections.append({'min': va, 'max': va+rawsize, 'offset': offset}) + + def seek_to_rva(rva): + for s in sections: + if s['min'] <= rva and rva < s['max']: + f.seek(rva - s['min'] + s['offset']) + return + raise ValueError, 'Could not find section for RVA.' + + # Walk the import table and get RVAs to the null-terminated names of DLLs this file uses. + # The table is terminated by an all-zero entry. + seek_to_rva(rva_of_import_table) + dll_rvas = [] + while True: + import_descriptor = f.read(20) + if import_descriptor == '\0' * 20: + break + dll_rvas.append(struct.unpack('<L', import_descriptor[12:16])[0]) + + # Read the DLL names from the RVAs we found in the import table. + dll_names = [] + for rva in dll_rvas: + seek_to_rva(rva) + name = '' + while True: + c = f.read(1) + if c == '\0': + break + name += c + dll_names.append(name) + + return dll_names + + +src_contents = os.listdir(sys.argv[1]) +dest_contents = os.listdir(sys.argv[2]) +for dest_name in dest_contents: + dest_fname = os.path.join(sys.argv[2], dest_name) + if os.path.isfile(dest_fname) and is_pe_file(dest_fname): + print dest_name + for dll in get_imports(dest_fname): + print '- %s' % dll, + if dll.lower() in [n.lower() for n in dest_contents]: + print '(already present)' + else: + for n in src_contents: + if n.lower() == dll.lower(): + shutil.copyfile(os.path.join(sys.argv[1], n), os.path.join(sys.argv[2], n)) + dest_contents.append(n) + print '(copied)' + break + else: + print '(assumed to be provided by operating system)' |
|
From: Tapio V. <aa...@us...> - 2010-07-22 15:36:40
|
Module: performous Branch: portaudio Commit: c58a0953eda8e8a207c283eafa0b5c4490a6c1a0 Author: John Stumpo <st...@js...> Date: Fri Jun 25 20:12:54 2010 -0400 Add a script that runs cmake with the right arguments. --- win32/cross-from-debian/makebuilddir.sh | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/win32/cross-from-debian/makebuilddir.sh b/win32/cross-from-debian/makebuilddir.sh new file mode 100755 index 0000000..3c469b9 --- /dev/null +++ b/win32/cross-from-debian/makebuilddir.sh @@ -0,0 +1,4 @@ +#!/bin/sh -e +mkdir -pv build +cd build +exec env PATH="`pwd`/../deps/bin:$PATH" cmake -DCMAKE_TOOLCHAIN_FILE=../Toolchain.cmake -DENABLE_TOOLS=OFF -DCMAKE_INSTALL_PREFIX="`pwd`/../stage" "$@" ../../.. |
|
From: Tapio V. <aa...@us...> - 2010-07-22 15:36:36
|
Module: performous Branch: portaudio Commit: a755874fcf1d1f1f816fffaa4a4865cef935ae11 Author: John Stumpo <st...@js...> Date: Fri Jun 25 19:23:57 2010 -0400 Split portmidi into portmidi and porttime so the cmake scripts detect it correctly. --- win32/cross-from-debian/makedeps.sh | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/win32/cross-from-debian/makedeps.sh b/win32/cross-from-debian/makedeps.sh index f92de94..355a4d2 100755 --- a/win32/cross-from-debian/makedeps.sh +++ b/win32/cross-from-debian/makedeps.sh @@ -269,9 +269,10 @@ if test ! -f "$PREFIX"/build-stamps/portmidi; then download http://download.sourceforge.net/portmedia/portmidi-src-200.zip unzip -o portmidi-src-200.zip cd portmidi - $CROSS_GCC -g -O2 -W -Wall -Ipm_common -Iporttime -DNDEBUG -D_WINDLL -mdll -o portmidi.dll -Wl,--out-implib,libportmidi.a pm_win/pmwin.c pm_win/pmwinmm.c porttime/ptwinmm.c pm_common/pmutil.c pm_common/portmidi.c -lwinmm - cp -v portmidi.dll "$PREFIX"/bin - cp -v libportmidi.a "$PREFIX"/lib + $CROSS_GCC -g -O2 -W -Wall -Iporttime -DNDEBUG -D_WINDLL -mdll -o porttime.dll -Wl,--out-implib,libporttime.a porttime/ptwinmm.c -lwinmm + $CROSS_GCC -g -O2 -W -Wall -Ipm_common -Iporttime -DNDEBUG -D_WINDLL -mdll -o portmidi.dll -Wl,--out-implib,libportmidi.a pm_win/pmwin.c pm_win/pmwinmm.c pm_common/pmutil.c pm_common/portmidi.c -L. -lporttime -lwinmm + cp -v portmidi.dll porttime.dll "$PREFIX"/bin + cp -v libportmidi.a libporttime.a "$PREFIX"/lib cp -v pm_common/portmidi.h porttime/porttime.h "$PREFIX"/include cd .. touch "$PREFIX"/build-stamps/portmidi |
|
From: Tapio V. <aa...@us...> - 2010-07-22 15:36:34
|
Module: performous Branch: portaudio Commit: a996445812c4443df84e9cdc56362d181a10e0ea Author: John Stumpo <st...@js...> Date: Fri Jun 25 01:39:55 2010 -0400 Use stamp files to skip building things already built. --- win32/cross-from-debian/makedeps.sh | 692 +++++++++++++++++++++-------------- 1 files changed, 412 insertions(+), 280 deletions(-) |
|
From: Tapio V. <aa...@us...> - 2010-07-22 15:36:31
|
Module: performous Branch: portaudio Commit: 2e78b09c8b10343b7bc524f5dfc6d237a6becc2a Author: John Stumpo <st...@js...> Date: Wed Jun 23 05:22:14 2010 -0400 Add commentary and genericity to the cross-makedeps script. --- win32/cross-from-debian/makedeps.sh | 180 ++++++++++++++++++++++++++-------- 1 files changed, 137 insertions(+), 43 deletions(-) |