From d18a96fb0ee00df4903f953b63145389e7974693 Mon Sep 17 00:00:00 2001 From: Julien Templier Date: Mon, 24 Jan 2011 12:41:02 +0000 Subject: 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 --- dists/codeblocks/create_codeblocks.bat | 54 ++++++++++++++++++++++++++++++++-- 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) { ""; } +// 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\n" "\t\t\t\t