From 9a494936561a5351f5bfb9e840d70c05684239c3 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Fri, 6 Mar 2015 02:39:57 +0200 Subject: DEVTOOLS: Add support for linking with SDL 2.0 in create_project This is handled with the new command-line option, --sdl2 --- devtools/create_project/create_project.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'devtools/create_project/create_project.cpp') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index e71816f575..34d30e1d69 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -125,6 +125,7 @@ int main(int argc, char *argv[]) { ProjectType projectType = kProjectNone; int msvcVersion = 9; + bool useSDL2 = false; // Parse command line arguments using std::cout; @@ -267,6 +268,8 @@ int main(int argc, char *argv[]) { setup.devTools = true; } else if (!std::strcmp(argv[i], "--tests")) { setup.tests = true; + } else if (!std::strcmp(argv[i], "--sdl2")) { + useSDL2 = true; } else { std::cerr << "ERROR: Unknown parameter \"" << argv[i] << "\"\n"; return -1; @@ -335,7 +338,13 @@ int main(int argc, char *argv[]) { // Windows only has support for the SDL backend, so we hardcode it here (along with winmm) setup.defines.push_back("WIN32"); setup.defines.push_back("SDL_BACKEND"); - setup.libraries.push_back("sdl"); + if (!useSDL2) { + cout << "\nLinking to SDL 1.2\n\n"; + setup.libraries.push_back("sdl"); + } else { + cout << "\nLinking to SDL 2.0\n\n"; + setup.libraries.push_back("sdl2"); + } setup.libraries.push_back("winmm"); // Add additional project-specific library @@ -645,6 +654,9 @@ void displayHelp(const char *exe) { "Optional features settings:\n" " --enable- enable inclusion of the feature \"name\"\n" " --disable- disable inclusion of the feature \"name\"\n" + "\n" + "SDL settings:\n" + " --sdl2 link to SDL 2.0, instead of SDL 1.2\n" "\n" " There are the following features available:\n" "\n"; -- cgit v1.2.3 From 9ef6e598058179e5124a75963d25e7e0936c29c4 Mon Sep 17 00:00:00 2001 From: Einar Johan Trøan Sømåen Date: Sat, 4 Apr 2015 18:17:10 +0200 Subject: CREATE_PROJECT: Make ProjectProvider able to work properly with subclasses that want to create one single project. --- devtools/create_project/create_project.cpp | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'devtools/create_project/create_project.cpp') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 34d30e1d69..ffaa4274f4 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -1279,18 +1279,23 @@ void ProjectProvider::createProject(BuildSetup &setup) { for (UUIDMap::const_iterator i = _uuidMap.begin(); i != _uuidMap.end(); ++i) { if (i->first == setup.projectName) continue; - - in.clear(); ex.clear(); + // Retain the files between engines if we're creating a single project + if (createOneProjectPerEngine()) { + in.clear(); ex.clear(); + } const std::string moduleDir = setup.srcDir + targetFolder + i->first; createModuleList(moduleDir, setup.defines, setup.testDirs, in, ex); - createProjectFile(i->first, i->second, setup, moduleDir, in, ex); + if (createOneProjectPerEngine()) { + createProjectFile(i->first, i->second, setup, moduleDir, in, ex); + } } if (setup.tests) { // Create the main project file. - in.clear(); ex.clear(); - + if (createOneProjectPerEngine()) { + in.clear(); ex.clear(); + } createModuleList(setup.srcDir + "/backends", setup.defines, setup.testDirs, in, ex); createModuleList(setup.srcDir + "/backends/platform/sdl", setup.defines, setup.testDirs, in, ex); createModuleList(setup.srcDir + "/base", setup.defines, setup.testDirs, in, ex); @@ -1304,8 +1309,9 @@ void ProjectProvider::createProject(BuildSetup &setup) { createProjectFile(setup.projectName, svmUUID, setup, setup.srcDir, in, ex); } else if (!setup.devTools) { // Last but not least create the main project file. - in.clear(); ex.clear(); - + if (createOneProjectPerEngine()) { + in.clear(); ex.clear(); + } // File list for the Project file createModuleList(setup.srcDir + "/backends", setup.defines, setup.testDirs, in, ex); createModuleList(setup.srcDir + "/backends/platform/sdl", setup.defines, setup.testDirs, in, ex); -- cgit v1.2.3 From 8af5d6e72208e96930f37f6442de71a81e8019cc Mon Sep 17 00:00:00 2001 From: Einar Johan Trøan Sømåen Date: Sat, 4 Apr 2015 18:40:50 +0200 Subject: CREATE_PROJECT: Disable the WIN32-define when creating an XCode-project. --- devtools/create_project/create_project.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'devtools/create_project/create_project.cpp') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index ffaa4274f4..43d3df1702 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -336,7 +336,9 @@ int main(int argc, char *argv[]) { setup.defines.splice(setup.defines.begin(), featureDefines); // Windows only has support for the SDL backend, so we hardcode it here (along with winmm) - setup.defines.push_back("WIN32"); + if (projectType != kProjectXcode) { + setup.defines.push_back("WIN32"); + } setup.defines.push_back("SDL_BACKEND"); if (!useSDL2) { cout << "\nLinking to SDL 1.2\n\n"; -- cgit v1.2.3 From bf919232e9424e54caade5e8d789e4a6231d8e42 Mon Sep 17 00:00:00 2001 From: Einar Johan Trøan Sømåen Date: Sat, 4 Apr 2015 18:45:18 +0200 Subject: CREATE_PROJECT: Enable XCode-project creation. --- devtools/create_project/create_project.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'devtools/create_project/create_project.cpp') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 43d3df1702..7b55446b57 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -20,7 +20,7 @@ * */ -//#define ENABLE_XCODE +#define ENABLE_XCODE // HACK to allow building with the SDL backend on MinGW // see bug #1800764 "TOOLS: MinGW tools building broken" -- cgit v1.2.3 From 484ad4dde7a92c1c2cc4859601da94c66a940a5e Mon Sep 17 00:00:00 2001 From: Einar Johan Trøan Sømåen Date: Sun, 5 Apr 2015 01:12:14 +0200 Subject: CREATE_PROJECT: Define MACOSX and POSIX in XCode-projects for now (ignoring iOS for the moment) --- devtools/create_project/create_project.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'devtools/create_project/create_project.cpp') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 7b55446b57..4113d6c83e 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -338,6 +338,9 @@ int main(int argc, char *argv[]) { // Windows only has support for the SDL backend, so we hardcode it here (along with winmm) if (projectType != kProjectXcode) { setup.defines.push_back("WIN32"); + } else { + setup.defines.push_back("POSIX"); + setup.defines.push_back("MACOSX"); // This will break iOS, but allows OS X to catch up on browser_osx. } setup.defines.push_back("SDL_BACKEND"); if (!useSDL2) { -- cgit v1.2.3 From 219a43d7458886062b30eb1e36d8f2259f388128 Mon Sep 17 00:00:00 2001 From: Einar Johan Trøan Sømåen Date: Thu, 9 Apr 2015 18:30:03 +0200 Subject: CREATE_PROJECT: Revert idea about createOneProjectPerEngine. --- devtools/create_project/create_project.cpp | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'devtools/create_project/create_project.cpp') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 4113d6c83e..2f784529bd 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -1285,22 +1285,17 @@ void ProjectProvider::createProject(BuildSetup &setup) { if (i->first == setup.projectName) continue; // Retain the files between engines if we're creating a single project - if (createOneProjectPerEngine()) { - in.clear(); ex.clear(); - } + in.clear(); ex.clear(); + const std::string moduleDir = setup.srcDir + targetFolder + i->first; createModuleList(moduleDir, setup.defines, setup.testDirs, in, ex); - if (createOneProjectPerEngine()) { - createProjectFile(i->first, i->second, setup, moduleDir, in, ex); - } + createProjectFile(i->first, i->second, setup, moduleDir, in, ex); } if (setup.tests) { // Create the main project file. - if (createOneProjectPerEngine()) { - in.clear(); ex.clear(); - } + in.clear(); ex.clear(); createModuleList(setup.srcDir + "/backends", setup.defines, setup.testDirs, in, ex); createModuleList(setup.srcDir + "/backends/platform/sdl", setup.defines, setup.testDirs, in, ex); createModuleList(setup.srcDir + "/base", setup.defines, setup.testDirs, in, ex); @@ -1314,9 +1309,7 @@ void ProjectProvider::createProject(BuildSetup &setup) { createProjectFile(setup.projectName, svmUUID, setup, setup.srcDir, in, ex); } else if (!setup.devTools) { // Last but not least create the main project file. - if (createOneProjectPerEngine()) { - in.clear(); ex.clear(); - } + in.clear(); ex.clear(); // File list for the Project file createModuleList(setup.srcDir + "/backends", setup.defines, setup.testDirs, in, ex); createModuleList(setup.srcDir + "/backends/platform/sdl", setup.defines, setup.testDirs, in, ex); -- cgit v1.2.3 From e24737f142112776ede892c9ba4091b09dafe68c Mon Sep 17 00:00:00 2001 From: Einar Johan Trøan Sømåen Date: Thu, 9 Apr 2015 19:51:01 +0200 Subject: CREATE_PROJECT: Modify producesObjectFile to take .m and .mm into account. This should be safe outside XCode, as only OSX/iOS-projects introduce such files to begin with. --- devtools/create_project/create_project.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'devtools/create_project/create_project.cpp') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 2f784529bd..42f4466b5e 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -1044,7 +1044,7 @@ bool producesObjectFile(const std::string &fileName) { std::string n, ext; splitFilename(fileName, n, ext); - if (ext == "cpp" || ext == "c" || ext == "asm") + if (ext == "cpp" || ext == "c" || ext == "asm" || ext == "m" || ext == "mm") return true; else return false; -- cgit v1.2.3 From 32b245475117abe37a9f5b1002a423dfffb8d87d Mon Sep 17 00:00:00 2001 From: Einar Johan Trøan Sømåen Date: Thu, 9 Apr 2015 19:51:33 +0200 Subject: CREATE_PROJECT: Don't add -fno-rtti. --- devtools/create_project/create_project.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'devtools/create_project/create_project.cpp') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 42f4466b5e..2e4e53dc59 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -415,7 +415,6 @@ int main(int argc, char *argv[]) { globalWarnings.push_back("-Wwrite-strings"); // The following are not warnings at all... We should consider adding them to // a different list of parameters. - globalWarnings.push_back("-fno-rtti"); globalWarnings.push_back("-fno-exceptions"); globalWarnings.push_back("-fcheck-new"); -- cgit v1.2.3 From bf065764985cc05f6e7c098e274aea08b92fee8f Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Mon, 20 Jul 2015 00:53:10 +0300 Subject: CREATE_PROJECT: Rename XCodeProvider -> XcodeProvider --- devtools/create_project/create_project.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'devtools/create_project/create_project.cpp') diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 2e4e53dc59..e4cb67134a 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -576,7 +576,7 @@ int main(int argc, char *argv[]) { globalWarnings.push_back("-fno-exceptions"); globalWarnings.push_back("-fcheck-new"); - provider = new CreateProjectTool::XCodeProvider(globalWarnings, projectWarnings); + provider = new CreateProjectTool::XcodeProvider(globalWarnings, projectWarnings); break; } -- cgit v1.2.3