diff options
author | Julien Templier | 2011-01-24 12:41:02 +0000 |
---|---|---|
committer | Julien Templier | 2011-01-24 12:41:02 +0000 |
commit | d18a96fb0ee00df4903f953b63145389e7974693 (patch) | |
tree | f62c2ad93326f1be168833175b48374e9cdcdc02 | |
parent | aa5e8e6c2bbd57bb183fd3c1f936b52767fe3941 (diff) | |
download | scummvm-rg350-d18a96fb0ee00df4903f953b63145389e7974693.tar.gz scummvm-rg350-d18a96fb0ee00df4903f953b63145389e7974693.tar.bz2 scummvm-rg350-d18a96fb0ee00df4903f953b63145389e7974693.zip |
TOOLS: Add better Code::Blocks support to create_project
- Update searchs path and library names to use the mingw precompiled libraries directly
- Enhance batch file to handle the same arguments as the MSVC one
svn-id: r55499
-rw-r--r-- | dists/codeblocks/create_codeblocks.bat | 54 | ||||
-rw-r--r-- | tools/create_project/codeblocks.cpp | 22 |
2 files changed, 72 insertions, 4 deletions
diff --git a/dists/codeblocks/create_codeblocks.bat b/dists/codeblocks/create_codeblocks.bat index 2f843682c7..f2a4bbd567 100644 --- a/dists/codeblocks/create_codeblocks.bat +++ b/dists/codeblocks/create_codeblocks.bat @@ -1,13 +1,39 @@ @echo off + echo. echo Automatic creation of the Code::Blocks project files echo. +if "%~1"=="/stable" goto stable +if "%~1"=="/STABLE" goto stable +if "%~1"=="/all" goto all +if "%~1"=="/ALL" goto all +if "%~1"=="/clean" goto clean_check +if "%~1"=="/CLEAN" goto clean_check +if "%~1"=="/help" goto command_help +if "%~1"=="/HELP" goto command_help +if "%~1"=="/?" goto command_help + +if "%~1"=="" goto check_tool + +echo Invalid command parameter: %~1 +echo. + +:command_help +echo Valid command parameters are: +echo stable Generated stable engines project files +echo all Generate all engines project files +echo clean Clean generated project files +echo help Show help message +goto done + +:check_tool if not exist create_project.exe goto no_tool :question echo. -set /p batchanswer="Enable (S)table engines only, or (A)ll engines? (S/A)" +set batchanswer=S +set /p batchanswer="Enable stable engines only, or all engines? (S/a)" if "%batchanswer%"=="s" goto stable if "%batchanswer%"=="S" goto stable if "%batchanswer%"=="a" goto all @@ -21,14 +47,38 @@ echo folder goto done :all +echo. echo Creating project files with all engines enabled (stable and unstable) +echo. create_project ..\.. --enable-all-engines --codeblocks goto done :stable +echo. echo Creating normal project files, with only the stable engines enabled +echo. create_project ..\.. --codeblocks goto done +:clean_check +echo. +set cleananswer=N +set /p cleananswer="This will remove all project files. Are you sure you want to continue? (N/y)" +if "%cleananswer%"=="n" goto done +if "%cleananswer%"=="N" goto done +if "%cleananswer%"=="y" goto clean +if "%cleananswer%"=="Y" goto clean +goto clean_check + +:clean +echo. +echo Removing all project files +del /Q *.cbp > NUL 2>&1 +del /Q *.workspace > NUL 2>&1 +del /Q *.depend > NUL 2>&1 +del /Q *.layout > NUL 2>&1 +goto done + :done -pause
\ No newline at end of file +echo. +pause diff --git a/tools/create_project/codeblocks.cpp b/tools/create_project/codeblocks.cpp index aefba3a1ba..b5fd743ee1 100644 --- a/tools/create_project/codeblocks.cpp +++ b/tools/create_project/codeblocks.cpp @@ -57,6 +57,22 @@ void CodeBlocksProvider::createWorkspace(const BuildSetup &setup) { "</CodeBlocks_workspace_file>"; } +// HACK We need to pre-process library names +// since the MSVC and mingw precompiled +// librarie have different names :( +std::string processLibraryName(std::string name) { + // Remove "_static" in lib name + size_t pos = name.find("_static"); + if (pos != std::string::npos) + return name.replace(pos, 7, ""); + + // Replace "zlib" by "libz" + if (name == "zlib") + return "libz"; + + return name; +} + void CodeBlocksProvider::createProjectFile(const std::string &name, const std::string &, const BuildSetup &setup, const std::string &moduleDir, const StringList &includeList, const StringList &excludeList) { @@ -78,7 +94,7 @@ void CodeBlocksProvider::createProjectFile(const std::string &name, const std::s std::string libraries; for (StringList::const_iterator i = setup.libraries.begin(); i != setup.libraries.end(); ++i) - libraries += *i + ".a;"; + libraries += processLibraryName(*i) + ".a;"; project << "\t\t\t<Target title=\"default\">\n" "\t\t\t\t<Option output=\"scummvm\\scummvm\" prefix_auto=\"1\" extension_auto=\"1\" />\n" @@ -97,6 +113,7 @@ void CodeBlocksProvider::createProjectFile(const std::string &name, const std::s writeDefines(setup.defines, project); project << "\t\t\t\t\t<Add directory=\"$(SCUMMVM_LIBS)include\" />\n" + "\t\t\t\t\t<Add directory=\"$(SCUMMVM_LIBS)include\\SDL\" />\n" "\t\t\t\t\t<Add directory=\"..\\..\\engines\" />\n" "\t\t\t\t\t<Add directory=\"..\\..\\common\" />\n" "\t\t\t\t\t<Add directory=\"..\\..\" />\n" @@ -107,7 +124,7 @@ void CodeBlocksProvider::createProjectFile(const std::string &name, const std::s project << "\t\t\t\t<Linker>\n"; for (StringList::const_iterator i = setup.libraries.begin(); i != setup.libraries.end(); ++i) - project << "\t\t\t\t\t<Add library=\"" << *i << "\" />\n"; + project << "\t\t\t\t\t<Add library=\"" << processLibraryName(*i) << "\" />\n"; for (UUIDMap::const_iterator i = _uuidMap.begin(); i != _uuidMap.end(); ++i) { if (i->first == "scummvm") @@ -117,6 +134,7 @@ void CodeBlocksProvider::createProjectFile(const std::string &name, const std::s } project << "\t\t\t\t\t<Add directory=\"$(SCUMMVM_LIBS)lib\\mingw\" />\n" + "\t\t\t\t\t<Add directory=\"$(SCUMMVM_LIBS)lib\" />\n" "\t\t\t\t</Linker>\n"; ////////////////////////////////////////////////////////////////////////// |