From 75b4fb14379bef1cc5dcb9808c2c234e3ad1a048 Mon Sep 17 00:00:00 2001 From: Rodrigo Braz Monteiro Date: Mon, 31 Dec 2007 06:46:22 +0000 Subject: [PATCH] Made almost all major components of Aegisub optional... this might be severely broken still. Originally committed to SVN as r1660. --- aegisub/VideoSink.cpp | 4 + aegisub/audio_player_dsound.cpp | 11 +-- aegisub/audio_provider_lavc.cpp | 4 + aegisub/auto4_auto3.cpp | 7 ++ aegisub/auto4_base.cpp | 5 + aegisub/auto4_lua.cpp | 5 + aegisub/auto4_lua_assfile.cpp | 5 + aegisub/auto4_lua_dialog.cpp | 6 ++ aegisub/auto4_lua_scriptreader.cpp | 5 + aegisub/auto4_ruby.cpp | 12 +-- aegisub/auto4_ruby_assfile.cpp | 4 + aegisub/auto4_ruby_dialog.cpp | 4 + aegisub/dialog_automation.cpp | 5 + aegisub/font_file_lister.cpp | 5 + aegisub/font_file_lister_freetype.cpp | 5 + aegisub/frame_main.cpp | 25 ++++- aegisub/frame_main.h | 3 + aegisub/frame_main_events.cpp | 14 +++ aegisub/lavc_file.cpp | 5 + aegisub/main.cpp | 9 +- aegisub/main.h | 3 + aegisub/res.rc | 3 + aegisub/setup.cpp | 66 +++++++++++++ aegisub/spellchecker_hunspell.cpp | 16 +--- aegisub/subtitles_provider_csri.cpp | 5 + aegisub/subtitles_provider_libass.cpp | 19 +--- aegisub/version.cpp | 11 +-- aegisub/video_provider_dshow.cpp | 13 +-- aegisub/video_provider_lavc.cpp | 15 +-- aegisub/win32/config0.h | 92 +++++++++++++++++++ build/aegisub_vs2005/aegisub_vs2005.vcproj | 57 +++++++----- build/build-credit-base.h | 3 + .../make-svn-rev-header-svn13.py | 0 .../build => build}/make-svn-rev-header.py | 0 {aegisub/build => build}/svn-revision-base.h | 0 35 files changed, 350 insertions(+), 96 deletions(-) create mode 100644 aegisub/win32/config0.h create mode 100644 build/build-credit-base.h rename {aegisub/build => build}/make-svn-rev-header-svn13.py (100%) rename {aegisub/build => build}/make-svn-rev-header.py (100%) rename {aegisub/build => build}/svn-revision-base.h (100%) diff --git a/aegisub/VideoSink.cpp b/aegisub/VideoSink.cpp index a573c3343..5d093596d 100644 --- a/aegisub/VideoSink.cpp +++ b/aegisub/VideoSink.cpp @@ -5,6 +5,8 @@ * */ +#include "config.h" +#ifdef WITH_DIRECTSHOW #include #ifdef __WXDEBUG__ #undef __WXDEBUG__ @@ -562,3 +564,5 @@ HRESULT CreateVideoSink(IBaseFilter **pVS) { *pVS = vs; return hr; } + +#endif // WITH_DIRECTSHOW diff --git a/aegisub/audio_player_dsound.cpp b/aegisub/audio_player_dsound.cpp index 7e3d00177..409fe1bc6 100644 --- a/aegisub/audio_player_dsound.cpp +++ b/aegisub/audio_player_dsound.cpp @@ -39,6 +39,9 @@ /////////// // Headers +#include "config.h" +#ifdef WITH_DIRECTSOUND + #include #include "audio_player.h" #include "audio_provider.h" @@ -50,12 +53,6 @@ #include -///////////// -// Libraries -#pragma comment(lib, "dsound.lib") -#pragma comment(lib, "dxguid.lib") - - ////////////// // Prototypes class DirectSoundPlayer; @@ -483,3 +480,5 @@ void DirectSoundPlayerThread::Stop() { // Increase the stopnotify by one, causing a wait for it to succeed SetEvent(stopnotify); } + +#endif // WITH_DIRECTSOUND diff --git a/aegisub/audio_provider_lavc.cpp b/aegisub/audio_provider_lavc.cpp index 7130f4658..742e9e15f 100644 --- a/aegisub/audio_provider_lavc.cpp +++ b/aegisub/audio_provider_lavc.cpp @@ -36,6 +36,9 @@ /////////// // Headers +#include "config.h" +#ifdef WITH_FFMPEG + #ifdef WIN32 #define EMULATE_INTTYPES #endif @@ -224,3 +227,4 @@ void LAVCAudioProvider::GetAudio(void *buf, int64_t start, int64_t count) } } +#endif diff --git a/aegisub/auto4_auto3.cpp b/aegisub/auto4_auto3.cpp index 437e1b88e..c5a677a6e 100644 --- a/aegisub/auto4_auto3.cpp +++ b/aegisub/auto4_auto3.cpp @@ -33,6 +33,10 @@ // Contact: mailto:jiifurusu@gmail.com // +#include "config.h" +#ifdef WITH_AUTOMATION +#ifdef WITH_AUTO3 + #include #include #include "auto4_auto3.h" @@ -753,3 +757,6 @@ namespace Automation4 { Auto3ScriptFactory _auto3_script_factory; }; + +#endif // WITH_AUTO3 +#endif // WITH_AUTOMATION diff --git a/aegisub/auto4_base.cpp b/aegisub/auto4_base.cpp index 5398ba29f..c4650171a 100644 --- a/aegisub/auto4_base.cpp +++ b/aegisub/auto4_base.cpp @@ -33,6 +33,9 @@ // Contact: mailto:jiifurusu@gmail.com // +#include "config.h" +#ifdef WITH_AUTOMATION + #include "auto4_base.h" #include "ass_style.h" #include "options.h" @@ -782,3 +785,5 @@ namespace Automation4 { } }; + +#endif // WITH_AUTOMATION diff --git a/aegisub/auto4_lua.cpp b/aegisub/auto4_lua.cpp index 0ed773778..0f8ac76ca 100644 --- a/aegisub/auto4_lua.cpp +++ b/aegisub/auto4_lua.cpp @@ -33,6 +33,9 @@ // Contact: mailto:jiifurusu@gmail.com // +#include "config.h" +#ifdef WITH_AUTOMATION + #include "auto4_lua.h" #include "auto4_lua_scriptreader.h" #include "ass_dialogue.h" @@ -904,3 +907,5 @@ namespace Automation4 { LuaScriptFactory _lua_script_factory; }; + +#endif // WITH_AUTOMATION diff --git a/aegisub/auto4_lua_assfile.cpp b/aegisub/auto4_lua_assfile.cpp index 50d95a57d..a9d0c2c57 100644 --- a/aegisub/auto4_lua_assfile.cpp +++ b/aegisub/auto4_lua_assfile.cpp @@ -33,6 +33,9 @@ // Contact: mailto:jiifurusu@gmail.com // +#include "config.h" +#ifdef WITH_AUTOMATION + #include "auto4_lua.h" #include "ass_dialogue.h" #include "ass_style.h" @@ -955,3 +958,5 @@ namespace Automation4 { } }; + +#endif // WITH_AUTOMATION diff --git a/aegisub/auto4_lua_dialog.cpp b/aegisub/auto4_lua_dialog.cpp index 3d77bfc7f..288db6d3e 100644 --- a/aegisub/auto4_lua_dialog.cpp +++ b/aegisub/auto4_lua_dialog.cpp @@ -33,6 +33,10 @@ // Contact: mailto:jiifurusu@gmail.com // + +#include "config.h" +#ifdef WITH_AUTOMATION + #include "auto4_lua.h" #include "../lua51/src/lualib.h" #include "../lua51/src/lauxlib.h" @@ -749,3 +753,5 @@ badcontrol: } }; + +#endif // WITH_AUTOMATION diff --git a/aegisub/auto4_lua_scriptreader.cpp b/aegisub/auto4_lua_scriptreader.cpp index 3dd8a95bc..5eb3951bf 100644 --- a/aegisub/auto4_lua_scriptreader.cpp +++ b/aegisub/auto4_lua_scriptreader.cpp @@ -33,6 +33,9 @@ // Contact: mailto:jiifurusu@gmail.com // +#include "config.h" +#ifdef WITH_AUTOMATION + #include "auto4_lua_scriptreader.h" namespace Automation4 { @@ -103,3 +106,5 @@ namespace Automation4 { } }; + +#endif // WITH_AUTOMATION diff --git a/aegisub/auto4_ruby.cpp b/aegisub/auto4_ruby.cpp index 7a3165832..aaf97be8b 100644 --- a/aegisub/auto4_ruby.cpp +++ b/aegisub/auto4_ruby.cpp @@ -33,6 +33,8 @@ // Contact: mailto:pomyk@go2.pl // +#include "config.h" +#ifdef WITH_RUBY #include "auto4_ruby.h" #include "auto4_auto3.h" #include "ass_dialogue.h" @@ -55,14 +57,6 @@ #include -/////////////////// -// Include library -#if __VISUALC__ >= 1200 -#pragma comment(lib,"ws2_32.lib") -#pragma comment(lib,"msvcr80-ruby19-static.lib") -#endif - - namespace Automation4 { RubyObjects *RubyObjects::inst = NULL; @@ -721,3 +715,5 @@ namespace Automation4 { return backtr; } }; + +#endif // WITH_RUBY diff --git a/aegisub/auto4_ruby_assfile.cpp b/aegisub/auto4_ruby_assfile.cpp index ee36d154d..3351375d3 100644 --- a/aegisub/auto4_ruby_assfile.cpp +++ b/aegisub/auto4_ruby_assfile.cpp @@ -33,6 +33,8 @@ // Contact: mailto:pomyk@go2.pl // +#include "config.h" +#ifdef WITH_RUBY #include "auto4_ruby.h" #include "ass_dialogue.h" #include "ass_style.h" @@ -426,3 +428,5 @@ namespace Automation4 { } }; + +#endif // WITH_RUBY diff --git a/aegisub/auto4_ruby_dialog.cpp b/aegisub/auto4_ruby_dialog.cpp index 535ad02a1..e482b227d 100644 --- a/aegisub/auto4_ruby_dialog.cpp +++ b/aegisub/auto4_ruby_dialog.cpp @@ -33,6 +33,8 @@ // Contact: mailto:pomyk@go2.pl // +#include "config.h" +#ifdef WITH_RUBY #include "auto4_ruby.h" #include #include @@ -588,3 +590,5 @@ namespace Automation4 { } }; + +#endif // WITH_RUBY diff --git a/aegisub/dialog_automation.cpp b/aegisub/dialog_automation.cpp index b1680a786..ef2103252 100644 --- a/aegisub/dialog_automation.cpp +++ b/aegisub/dialog_automation.cpp @@ -33,6 +33,9 @@ // Contact: mailto:jiifurusu@gmail.com // +#include "config.h" +#ifdef WITH_AUTOMATION + #include "main.h" #include "dialog_automation.h" #include "auto4_base.h" @@ -319,3 +322,5 @@ void DialogAutomation::OnSelectionChange(wxListEvent &evt) { UpdateDisplay(); } + +#endif // WITH_AUTOMATION diff --git a/aegisub/font_file_lister.cpp b/aegisub/font_file_lister.cpp index e8755435e..b41cf205e 100644 --- a/aegisub/font_file_lister.cpp +++ b/aegisub/font_file_lister.cpp @@ -36,14 +36,17 @@ //////////// // Includes +#include "config.h" #include #include "font_file_lister.h" #include "text_file_writer.h" #include "text_file_reader.h" #include "standard_paths.h" #if defined(WIN32) || defined(__APPLE__) +#ifdef WITH_FREETYPE2 #include "font_file_lister_freetype.h" #define FontListerClass FreetypeFontFileLister +#endif #else #include "font_file_lister_fontconfig.h" #define FontListerClass FontConfigFontFileLister @@ -70,7 +73,9 @@ FontFileLister::~FontFileLister() { //////////////// // Get instance void FontFileLister::GetInstance() { +#ifdef FontListerClass if (!instance) instance = new FontListerClass(); +#endif } diff --git a/aegisub/font_file_lister_freetype.cpp b/aegisub/font_file_lister_freetype.cpp index 63d20671f..e8fa57b09 100644 --- a/aegisub/font_file_lister_freetype.cpp +++ b/aegisub/font_file_lister_freetype.cpp @@ -36,6 +36,9 @@ //////////// // Includes +#include "config.h" +#ifdef WITH_FREETYPE2 + #include "font_file_lister_freetype.h" #include #include FT_FREETYPE_H @@ -110,3 +113,5 @@ void FreetypeFontFileLister::DoInitialize() { // Save cache SaveCache(); } + +#endif WITH_FREETYPE2 diff --git a/aegisub/frame_main.cpp b/aegisub/frame_main.cpp index d8cd9c9e9..4edd50295 100644 --- a/aegisub/frame_main.cpp +++ b/aegisub/frame_main.cpp @@ -43,6 +43,7 @@ #include #include #include +#include "config.h" #include "subs_grid.h" #include "frame_main.h" #include "avisynth_wrap.h" @@ -66,11 +67,13 @@ #include "utils.h" #include "text_file_reader.h" #include "text_file_writer.h" -#include "auto4_base.h" #include "dialog_version_check.h" #include "dialog_detached_video.h" #include "standard_paths.h" #include "keyframe.h" +#ifdef WITH_AUTOMATION +#include "auto4_base.h" +#endif ///////////////////////// @@ -106,7 +109,9 @@ FrameMain::FrameMain (wxArrayString args) wxImage::AddHandler(png); // Storage for subs-file-local scripts +#ifdef WITH_AUTOMATION local_scripts = new Automation4::ScriptManager(); +#endif // Create menu and tool bars if (Options.AsBool(_T("Maximized"))) Maximize(true); @@ -183,7 +188,9 @@ FrameMain::FrameMain (wxArrayString args) // FrameMain destructor FrameMain::~FrameMain () { DeInitContents(); +#ifdef WITH_AUTOMATION delete local_scripts; +#endif } @@ -232,8 +239,10 @@ void FrameMain::InitToolbar () { Toolbar->AddSeparator(); // Automation +#ifdef WITH_AUTOMATION Toolbar->AddTool(Menu_Tools_Automation,_("Automation"),wxBITMAP(automation_toolbutton),_("Open Automation manager")); Toolbar->AddSeparator(); +#endif // Tools Toolbar->AddTool(Menu_Edit_Shift,_("Shift Times"),wxBITMAP(shift_times_toolbutton),_("Open Shift Times Dialogue")); @@ -449,10 +458,12 @@ void FrameMain::InitMenu() { MenuBar->Append(audioMenu, _("&Audio")); // Create Automation menu +#ifdef WITH_AUTOMATION automationMenu = new wxMenu(); AppendBitmapMenuItem (automationMenu,Menu_Tools_Automation, _("&Automation..."),_("Open automation manager"), wxBITMAP(automation_toolbutton)); automationMenu->AppendSeparator(); MenuBar->Append(automationMenu, _("&Automation")); +#endif // Create view menu viewMenu = new wxMenu(); @@ -851,9 +862,11 @@ void FrameMain::SynchronizeProject(bool fromSubs) { if (curSubsAudio != audioBox->audioName || curSubsVFR != VFR_Output.GetFilename() || curSubsVideo != VideoContext::Get()->videoName || - curSubsKeyframes != VideoContext::Get()->GetKeyFramesName() || - !AutoScriptString.IsEmpty() || - local_scripts->GetScripts().size() > 0) { + curSubsKeyframes != VideoContext::Get()->GetKeyFramesName() +#ifdef WITH_AUTOMATION + || !AutoScriptString.IsEmpty() || local_scripts->GetScripts().size() > 0 +#endif + ) { hasToLoad = true; } @@ -895,6 +908,7 @@ void FrameMain::SynchronizeProject(bool fromSubs) { } // Automation scripts +#ifdef WITH_AUTOMATION local_scripts->RemoveAll(); wxStringTokenizer tok(AutoScriptString, _T("|"), wxTOKEN_STRTOK); wxFileName subsfn(subs->filename); @@ -925,6 +939,7 @@ void FrameMain::SynchronizeProject(bool fromSubs) { sfnamel.c_str(), sfnames.c_str(), basepath.c_str(), sfname.GetFullPath().c_str()); } } +#endif } // Display @@ -963,6 +978,7 @@ void FrameMain::SynchronizeProject(bool fromSubs) { // 2. Otherwise try making it relative to the subs filename // 3. If step 2 failed, or absolut path is shorter than path relative to subs, use absolute path ("/") // 4. Otherwise, use path relative to subs ("~") +#ifdef WITH_AUTOMATION wxString scripts_string; wxString autobasefn(Options.AsText(_T("Automation Base Path"))); @@ -989,6 +1005,7 @@ void FrameMain::SynchronizeProject(bool fromSubs) { scripts_string += scriptfn; } subs->SetScriptInfo(_T("Automation Scripts"), scripts_string); +#endif } } diff --git a/aegisub/frame_main.h b/aegisub/frame_main.h index 6a37901bc..d8175cb73 100644 --- a/aegisub/frame_main.h +++ b/aegisub/frame_main.h @@ -49,6 +49,7 @@ #include #include #include +#include "config.h" //////////////////// @@ -108,7 +109,9 @@ private: wxWindow *PreviousFocus; wxLogWindow *LogWindow; +#ifdef WITH_AUTOMATION Automation4::ScriptManager *local_scripts; +#endif std::vector activeMacroItems; int AddMacroMenuItems(wxMenu *menu, const std::vector ¯os); diff --git a/aegisub/frame_main_events.cpp b/aegisub/frame_main_events.cpp index d9a295cbe..cd3c3e100 100644 --- a/aegisub/frame_main_events.cpp +++ b/aegisub/frame_main_events.cpp @@ -75,7 +75,9 @@ #include "dialog_progress.h" #include "dialog_options.h" #include "utils.h" +#ifdef WITH_AUTOMATION #include "auto4_base.h" +#endif #include "dialog_automation.h" #include "dialog_version_check.h" #include "dialog_detached_video.h" @@ -424,6 +426,7 @@ void FrameMain::OnMenuOpen (wxMenuEvent &event) { } // Automation menu +#ifdef WITH_AUTOMATION else if (curMenu == automationMenu) { // Remove old macro items for (unsigned int i = 0; i < activeMacroItems.size(); i++) { @@ -445,6 +448,7 @@ void FrameMain::OnMenuOpen (wxMenuEvent &event) { activeMacroItems.push_back(0); } } +#endif MenuBar->Thaw(); } @@ -453,6 +457,7 @@ void FrameMain::OnMenuOpen (wxMenuEvent &event) { ////////////////////////////// // Macro menu creation helper int FrameMain::AddMacroMenuItems(wxMenu *menu, const std::vector ¯os) { +#ifdef WITH_AUTOMATION if (macros.empty()) { return 0; } @@ -466,6 +471,9 @@ int FrameMain::AddMacroMenuItems(wxMenu *menu, const std::vectorReload(); } +#endif DialogExport exporter(this); exporter.ShowModal(); @@ -1006,6 +1016,7 @@ void FrameMain::OnOpenLog (wxCommandEvent &event) { /////////////////// // Open Automation void FrameMain::OnOpenAutomation (wxCommandEvent &event) { +#ifdef WITH_AUTOMATION #ifdef __APPLE__ if (wxGetMouseState().CmdDown()) { #else @@ -1037,12 +1048,14 @@ void FrameMain::OnOpenAutomation (wxCommandEvent &event) { DialogAutomation dlg(this, local_scripts); dlg.ShowModal(); } +#endif } /////////////////////////////////////////////////////////// // General handler for all Automation-generated menu items void FrameMain::OnAutomationMacro (wxCommandEvent &event) { +#ifdef WITH_AUTOMATION SubsBox->BeginBatch(); // First get selection data // This much be done before clearing the maps, since selection data are lost during that @@ -1058,6 +1071,7 @@ void FrameMain::OnAutomationMacro (wxCommandEvent &event) { SubsBox->SetSelectionFromAbsolute(selected_lines); SubsBox->CommitChanges(true, false); SubsBox->EndBatch(); +#endif } diff --git a/aegisub/lavc_file.cpp b/aegisub/lavc_file.cpp index 1881fd8f9..6c9866c22 100644 --- a/aegisub/lavc_file.cpp +++ b/aegisub/lavc_file.cpp @@ -34,6 +34,8 @@ // +#include "config.h" +#ifdef WITH_FFMPEG #include #include #include "lavc_file.h" @@ -73,3 +75,6 @@ LAVCFile::~LAVCFile() if (fctx) av_close_input_file(fctx); } + + +#endif // WITH_FFMPEG diff --git a/aegisub/main.cpp b/aegisub/main.cpp index acbe0f23b..66fb34930 100644 --- a/aegisub/main.cpp +++ b/aegisub/main.cpp @@ -44,6 +44,7 @@ #include #include #include +#include "config.h" #include "main.h" #include "frame_main.h" #include "options.h" @@ -57,10 +58,12 @@ #include "ass_time.h" #include "ass_dialogue.h" #include "subs_grid.h" -#include "auto4_base.h" #include "subtitle_format.h" #include "video_context.h" #include "standard_paths.h" +#ifdef WITH_AUTOMATION +#include "auto4_base.h" +#endif /////////////////// @@ -156,8 +159,10 @@ bool AegisubApp::OnInit() { #endif // Load Automation scripts +#ifdef WITH_AUTOMATION StartupLog(_T("Load global Automation scripts")); global_scripts = new Automation4::AutoloadScriptManager(Options.AsText(_T("Automation Autoload Path"))); +#endif // Load export filters StartupLog(_T("Prepare export filters")); @@ -197,7 +202,9 @@ int AegisubApp::OnExit() { SubtitleFormat::DestroyFormats(); VideoContext::Clear(); Options.Clear(); +#ifdef WITH_AUTOMATION delete global_scripts; +#endif return wxApp::OnExit(); } diff --git a/aegisub/main.h b/aegisub/main.h index fbcdf966a..18be3b37f 100644 --- a/aegisub/main.h +++ b/aegisub/main.h @@ -45,6 +45,7 @@ #include #include #include "aegisublocale.h" +#include "config.h" ////////////// @@ -63,7 +64,9 @@ private: public: AegisubLocale locale; FrameMain *frame; +#ifdef WITH_AUTOMATION Automation4::AutoloadScriptManager *global_scripts; +#endif static AegisubApp* Get() { return (AegisubApp*) wxTheApp; } static void OpenURL(wxString url); diff --git a/aegisub/res.rc b/aegisub/res.rc index 59cf3d137..f39c60dc8 100644 --- a/aegisub/res.rc +++ b/aegisub/res.rc @@ -164,4 +164,7 @@ eyedropper_cursor CURSOR "bitmaps/eyedropper.cur" splash BITMAP "bitmaps/splash.bmp" + +// The following define is necessary for Visual Studio +#define wxUSE_NO_MANIFEST 1 #include "wx/msw/wx.rc" diff --git a/aegisub/setup.cpp b/aegisub/setup.cpp index 6d7a16073..081b47a7c 100644 --- a/aegisub/setup.cpp +++ b/aegisub/setup.cpp @@ -37,6 +37,7 @@ /////////// // Headers #include +#include "config.h" ////////////////////////////////// @@ -121,4 +122,69 @@ #pragma comment(lib, "wsock32.lib") +////////////// +// DirectShow +#ifdef WITH_DIRECTSHOW +#ifdef __WXDEBUG__ +#pragma comment(lib, "strmbasdu.lib") +#else +#pragma comment(lib, "strmbaseu.lib") +#endif +#endif + + +//////////////// +// Direct Sound +#ifdef WITH_DIRECTSOUND +#pragma comment(lib, "dsound.lib") +#pragma comment(lib, "dxguid.lib") +#endif + + +//////// +// Ruby +#ifdef WITH_RUBY +#pragma comment(lib,"ws2_32.lib") +#pragma comment(lib,"msvcr80-ruby19-static.lib") +#endif + + +//////////// +// Hunspell +#ifdef WITH_HUNSPELL +#ifdef __WXDEBUG__ +#pragma comment(lib,"hunspelld.lib") +#else +#pragma comment(lib,"hunspell.lib") +#endif +#endif + + +////////// +// FFMPEG +#ifdef WITH_FFMPEG +#pragma comment(lib, "avcodec-51.lib") +#pragma comment(lib, "avformat-51.lib") +#pragma comment(lib, "avutil-49.lib") +#endif + + +///////////// +// FreeType2 +#ifdef WITH_FREETYPE2 +#ifdef __WXDEBUG__ +#pragma comment(lib,"freetype233MT_D.lib") +#else +#pragma comment(lib,"freetype233MT.lib") +#endif +#endif + + +/////////////// +// Font Config +#ifdef WITH_FONTCONFIG +#pragma comment(lib,"libfontconfig.lib") +#endif + + #endif // VisualC diff --git a/aegisub/spellchecker_hunspell.cpp b/aegisub/spellchecker_hunspell.cpp index ac0162965..ab9762652 100644 --- a/aegisub/spellchecker_hunspell.cpp +++ b/aegisub/spellchecker_hunspell.cpp @@ -36,6 +36,9 @@ /////////// // Headers +#include "config.h" +#ifdef WITH_HUNSPELL + #include "spellchecker.h" #include "standard_paths.h" #include "utils.h" @@ -49,17 +52,6 @@ #include -///////////// -// Libraries -#if __VISUALC__ >= 1200 -#ifdef __WXDEBUG__ -#pragma comment(lib,"hunspelld.lib") -#else -#pragma comment(lib,"hunspell.lib") -#endif -#endif - - ////////////////// // Hunspell class class HunspellSpellChecker : public SpellChecker { @@ -280,3 +272,5 @@ void HunspellSpellChecker::SetLanguage(wxString language) { conv = NULL; if (hunspell) conv = new wxCSConv(wxString(hunspell->get_dic_encoding(),wxConvUTF8)); } + +#endif // WITH_HUNSPELL diff --git a/aegisub/subtitles_provider_csri.cpp b/aegisub/subtitles_provider_csri.cpp index 0f8ac2027..24aacd48f 100644 --- a/aegisub/subtitles_provider_csri.cpp +++ b/aegisub/subtitles_provider_csri.cpp @@ -36,6 +36,9 @@ /////////// // Headers +#include "config.h" +#ifdef WITH_CSRI + #include #include "subtitles_provider.h" #include "ass_file.h" @@ -199,3 +202,5 @@ void CSRISubtitlesProvider::DrawSubtitles(AegiVideoFrame &dst,double time) { // Render csri_render(instance,&frame,time); } + +#endif // WITH_CSRI diff --git a/aegisub/subtitles_provider_libass.cpp b/aegisub/subtitles_provider_libass.cpp index 0270fb43f..4a980d94a 100644 --- a/aegisub/subtitles_provider_libass.cpp +++ b/aegisub/subtitles_provider_libass.cpp @@ -35,6 +35,9 @@ /////////// // Headers +#include "config.h" +#ifdef WITH_LIBASS + #include "subtitles_provider.h" #include "ass_file.h" #include "video_context.h" @@ -47,20 +50,6 @@ extern "C" { } -/////////// -// Library -#ifdef __VISUALC__ -#ifdef __WXDEBUG__ -//#pragma comment(lib,"libassd.lib") -#pragma comment(lib,"freetype233MT_D.lib") -#else -//#pragma comment(lib,"libass.lib") -#pragma comment(lib,"freetype233MT.lib") -#endif -#pragma comment(lib,"libfontconfig.lib") -#endif - - /////////////////// // libass provider class LibassSubtitlesProvider : public SubtitlesProvider { @@ -194,3 +183,5 @@ void LibassSubtitlesProvider::DrawSubtitles(AegiVideoFrame &frame,double time) { img = img->next; } } + +#endif // WITH_LIBASS diff --git a/aegisub/version.cpp b/aegisub/version.cpp index 275c993ef..2e60a2502 100644 --- a/aegisub/version.cpp +++ b/aegisub/version.cpp @@ -38,15 +38,8 @@ #include "version.h" #if defined(__WINDOWS__) || defined(__APPLE__) -// This include is generated by build/make-svn-rev-header.py -// That script should be run before every build is initiated -#include "build/svn-revision.h" - -// Either create a build/build-credit.h file defining BUILD_CREDIT, -// or define it during compilation of this file -#ifndef BUILD_CREDIT -#include "build/build-credit.h" -#endif +#include "../build/svn-revision.h" +#include "../build/build-credit.h" #else diff --git a/aegisub/video_provider_dshow.cpp b/aegisub/video_provider_dshow.cpp index 450fd860a..694cd3099 100644 --- a/aegisub/video_provider_dshow.cpp +++ b/aegisub/video_provider_dshow.cpp @@ -36,6 +36,9 @@ /////////// // Headers +#include "config.h" +#ifdef WITH_DIRECTSHOW + #pragma warning(disable: 4995) #include #ifdef __WINDOWS__ @@ -56,15 +59,6 @@ #include "options.h" -/////////////////////// -// DirectShow library -#ifdef __WXDEBUG__ -#pragma comment(lib, "strmbasdu.lib") -#else -#pragma comment(lib, "strmbaseu.lib") -#endif - - /////////////////////////////////// // DirectShow Video Provider class class DirectShowVideoProvider: public VideoProvider { @@ -591,3 +585,4 @@ void DirectShowVideoProvider::OverrideFrameTimeList(wxArrayInt list) { } #endif +#endif // WITH_DIRECTSHOW diff --git a/aegisub/video_provider_lavc.cpp b/aegisub/video_provider_lavc.cpp index 766986bdc..96391a371 100644 --- a/aegisub/video_provider_lavc.cpp +++ b/aegisub/video_provider_lavc.cpp @@ -36,6 +36,9 @@ /////////// // Headers +#include "config.h" +#ifdef WITH_FFMPEG + #ifdef WIN32 #define EMULATE_INTTYPES #endif @@ -54,16 +57,6 @@ extern "C" { #include "ass_file.h" -///////////////////// -// Link to libraries -#if __VISUALC__ >= 1200 -//#pragma comment(lib, "swscale-0.lib") -#pragma comment(lib, "avcodec-51.lib") -#pragma comment(lib, "avformat-51.lib") -#pragma comment(lib, "avutil-49.lib") -#endif - - /////////////////////// // LibAVCodec provider class LAVCVideoProvider : public VideoProvider { @@ -541,3 +534,5 @@ int LAVCVideoProvider::GetWidth() { int LAVCVideoProvider::GetHeight() { return codecContext->height; } + +#endif // WITH_FFMPEG diff --git a/aegisub/win32/config0.h b/aegisub/win32/config0.h new file mode 100644 index 000000000..312bd367e --- /dev/null +++ b/aegisub/win32/config0.h @@ -0,0 +1,92 @@ +// Copyright (c) 2007, Rodrigo Braz Monteiro +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// * Neither the name of the Aegisub Group nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +// ----------------------------------------------------------------------------- +// +// AEGISUB +// +// Website: http://aegisub.cellosoft.com +// Contact: mailto:zeratul@cellosoft.com +// + + +#pragma once + + +// Enable Automation +// Requires: Lua +//#define WITH_AUTOMATION + + +// Enable Automation 3 +// Requires: auto3 dll, Lua +//#define WITH_AUTO3 + + +// Enable DirectShow video provider +// Requires: DirectShow "baseclasses", Platform SDK? +//#define WITH_DIRECTSHOW + + +// Enable DirectSound audio player +// Requires: PlatformSDK? +//#define WITH_DIRECTSOUND + + +// Enable FFmpeg video and audio decoders +// Requires: libavcodec and libavformat +//#define WITH_FFMPEG + + +// Enable Ruby support for Automation +// Requires: Ruby 1.9 +//#define WITH_RUBY + + +// Enable FreeType2 font lister for the fonts collector +// Requires: FreeType2 +//#define WITH_FREETYPE2 + + +// Enable Hunspell-based spellchecker +// Requires: hunspell +//#define WITH_HUNSPELL + + +// Enable FontConfig +// Requires: fontconfig +//#define WITH_FONTCONFIG + + +// Enable CSRI +// Requires: csri +//#define WITH_CSRI + + +// Enable libass +// Requires: libass +//#define WITH_LIBASS \ No newline at end of file diff --git a/build/aegisub_vs2005/aegisub_vs2005.vcproj b/build/aegisub_vs2005/aegisub_vs2005.vcproj index 0c7bf1094..fad8c1f4f 100644 --- a/build/aegisub_vs2005/aegisub_vs2005.vcproj +++ b/build/aegisub_vs2005/aegisub_vs2005.vcproj @@ -24,6 +24,7 @@ > - - - - - - - - @@ -698,6 +691,14 @@ + + + + + + + + + + @@ -1199,14 +1216,6 @@ RelativePath="..\..\aegisub\keyframe.h" > - - - - diff --git a/build/build-credit-base.h b/build/build-credit-base.h new file mode 100644 index 000000000..3fd3b21e8 --- /dev/null +++ b/build/build-credit-base.h @@ -0,0 +1,3 @@ +// This file determines the name of the person building the program + +#define BUILD_CREDIT "Anonymous" diff --git a/aegisub/build/make-svn-rev-header-svn13.py b/build/make-svn-rev-header-svn13.py similarity index 100% rename from aegisub/build/make-svn-rev-header-svn13.py rename to build/make-svn-rev-header-svn13.py diff --git a/aegisub/build/make-svn-rev-header.py b/build/make-svn-rev-header.py similarity index 100% rename from aegisub/build/make-svn-rev-header.py rename to build/make-svn-rev-header.py diff --git a/aegisub/build/svn-revision-base.h b/build/svn-revision-base.h similarity index 100% rename from aegisub/build/svn-revision-base.h rename to build/svn-revision-base.h