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";  		////////////////////////////////////////////////////////////////////////// | 
