diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index a2a5f0a385..a771ed48b9 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -759,7 +759,7 @@ ARDOUR_UI::starting () nsm->check (); Glib::usleep (i); - if (nsm->is_active()) + if (nsm->is_active()) { break; } } @@ -770,9 +770,8 @@ ARDOUR_UI::starting () // wait for open command from nsm server for ( i = 0; i < 5000; ++i) { nsm->check (); - Glib::usleep (1000); - if (nsm->client_id ()) + if (nsm->client_id ()) { break; } } diff --git a/gtk2_ardour/automation_line.cc b/gtk2_ardour/automation_line.cc index 2551b40c75..9fe1e0fa19 100644 --- a/gtk2_ardour/automation_line.cc +++ b/gtk2_ardour/automation_line.cc @@ -19,13 +19,9 @@ #ifdef COMPILER_MSVC #include - -// 'std::isinf()' and 'std::isnan()' are not available in MSVC. +/* isinf() & isnan() are C99 standards, which older MSVC doesn't provide */ #define isinf(val) !((bool)_finite((double)val)) #define isnan(val) (bool)_isnan((double)val) -#else -using std::isnan; -using std::isinf; #endif #include diff --git a/gtk2_ardour/export_range_markers_dialog.cc b/gtk2_ardour/export_range_markers_dialog.cc index 4b99162974..97a8dba25f 100644 --- a/gtk2_ardour/export_range_markers_dialog.cc +++ b/gtk2_ardour/export_range_markers_dialog.cc @@ -93,7 +93,7 @@ ExportRangeMarkersDialog::process_range_markers_export(Locations::LocationList& if(gtk_events_pending()){ gtk_main_iteration(); }else { - usleep(10000); + Glib::usleep(10000); } } diff --git a/gtk2_ardour/linux_vst_gui_support.cc b/gtk2_ardour/linux_vst_gui_support.cc index 6eec688a7c..4d90bdd4aa 100644 --- a/gtk2_ardour/linux_vst_gui_support.cc +++ b/gtk2_ardour/linux_vst_gui_support.cc @@ -33,6 +33,7 @@ #include #include #include +#include #include "ardour/linux_vst_support.h" @@ -377,7 +378,7 @@ void* gui_event_loop (void* ptr) /*We don't want to use all the CPU.. */ - usleep(1000); + Glib::usleep(1000); LXVST_sched_event_timer++; @@ -706,7 +707,7 @@ vstfx_launch_editor (VSTState* vstfx) /*QUIRK - some plugins need a slight delay after opening the editor before you can ask the window size or they might return zero - specifically discoDSP */ - usleep(100000); + Glib::usleep(100000); /*Now we can find out how big the parent window should be (and try) to resize it*/ diff --git a/gtk2_ardour/lxvst_plugin_ui.cc b/gtk2_ardour/lxvst_plugin_ui.cc index d31038755b..e3335d4990 100644 --- a/gtk2_ardour/lxvst_plugin_ui.cc +++ b/gtk2_ardour/lxvst_plugin_ui.cc @@ -141,7 +141,7 @@ LXVSTPluginUI::get_XID () */ while (!(_vst->state()->been_activated)) { - usleep (1000); + Glib::usleep (1000); } int const id = _vst->state()->xid; diff --git a/gtk2_ardour/main.cc b/gtk2_ardour/main.cc index de56b1e387..d212edef92 100644 --- a/gtk2_ardour/main.cc +++ b/gtk2_ardour/main.cc @@ -175,8 +175,8 @@ fixup_bundle_environment (int, char* []) export_search_path (bundle_dir, "VAMP_PATH", "/lib"); export_search_path (bundle_dir, "GTK_PATH", "/lib/gtkengines"); - setenv ("SUIL_MODULE_DIR", (bundle_dir + "/lib").c_str(), 1); - setenv ("PATH", (bundle_dir + "/MacOS:" + std::string(getenv ("PATH"))).c_str(), 1); + g_setenv ("SUIL_MODULE_DIR", (bundle_dir + "/lib").c_str(), 1); + g_setenv ("PATH", (bundle_dir + "/MacOS:" + std::string(g_getenv ("PATH"))).c_str(), 1); /* unset GTK_RC_FILES so that we only load the RC files that we define */ @@ -285,8 +285,8 @@ fixup_bundle_environment (int /*argc*/, char* argv[]) export_search_path (dir_path, "VAMP_PATH", "/lib"); export_search_path (dir_path, "GTK_PATH", "/lib/gtkengines"); - setenv ("SUIL_MODULE_DIR", (dir_path + "/lib").c_str(), 1); - setenv ("PATH", (dir_path + "/bin:" + std::string(getenv ("PATH"))).c_str(), 1); + g_setenv ("SUIL_MODULE_DIR", (dir_path + "/lib").c_str(), 1); + g_setenv ("PATH", (dir_path + "/bin:" + std::string(g_getenv ("PATH"))).c_str(), 1); /* unset GTK_RC_FILES so that we only load the RC files that we define */ diff --git a/gtk2_ardour/plugin_eq_gui.cc b/gtk2_ardour/plugin_eq_gui.cc index 4bf2a5f879..9a91d0c124 100644 --- a/gtk2_ardour/plugin_eq_gui.cc +++ b/gtk2_ardour/plugin_eq_gui.cc @@ -20,13 +20,9 @@ #ifdef COMPILER_MSVC #include - -// 'std::isinf()' and 'std::isnan()' are not available in MSVC. +/* isinf() & isnan() are C99 standards, which older MSVC doesn't provide */ #define isinf(val) !((bool)_finite((double)val)) #define isnan(val) (bool)_isnan((double)val) -#else -using std::isnan; -using std::isinf; #endif #include "plugin_eq_gui.h" diff --git a/gtk2_ardour/system_exec.cc b/gtk2_ardour/system_exec.cc index 1a8399d22e..034ba90e40 100644 --- a/gtk2_ardour/system_exec.cc +++ b/gtk2_ardour/system_exec.cc @@ -540,7 +540,7 @@ SystemExec::terminate () if (pid) { ::kill(pid, SIGTERM); - ::usleep(50000); + usleep(50000); sched_yield(); wait(WNOHANG); } diff --git a/gtk2_ardour/system_exec.h b/gtk2_ardour/system_exec.h index 38589bb26f..c69f957d95 100644 --- a/gtk2_ardour/system_exec.h +++ b/gtk2_ardour/system_exec.h @@ -30,6 +30,15 @@ #define STDERR_FILENO 2 #endif +#if defined (__MINGW64__) +#include + +#ifdef interface +#undef interface // VKamyshniy: to avoid "include/giomm-2.4/giomm/dbusmessage.h:270:94: error: expected ',' or '...' before 'struct'" +#endif + +#endif + #include #include #include diff --git a/gtk2_ardour/utils_videotl.cc b/gtk2_ardour/utils_videotl.cc index ed1bfad766..2e250b2cee 100644 --- a/gtk2_ardour/utils_videotl.cc +++ b/gtk2_ardour/utils_videotl.cc @@ -325,7 +325,7 @@ extern "C" { struct A3MemoryStruct chunk; long int httpstatus; if (status) *status = 0; - //usleep(500000); return NULL; // TEST & DEBUG + //Glib::usleep(500000); return NULL; // TEST & DEBUG if (strncmp("http://", u, 7)) return NULL; chunk.data=NULL; diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript index 578409c4ae..41d5a269f6 100644 --- a/gtk2_ardour/wscript +++ b/gtk2_ardour/wscript @@ -3,6 +3,7 @@ from waflib.extras import autowaf as autowaf from waflib import Options, TaskGen import waflib.Logs as Logs, waflib.Utils as Utils import os +import shutil import sys import re import time @@ -630,7 +631,7 @@ def build(bld): obj.install_path = None set_subst_dict(obj, light_rc_subst_dict) - obj = bld(rule = 'cp ${SRC} ${TGT}') + obj = bld(rule = autowaf.copyfile) obj.source = [ 'ardour3_widget_list.rc' ] obj.target = 'ardour3_widgets.rc' obj.install_path = None @@ -672,11 +673,15 @@ def build(bld): # 'SAE-de-keypad', 'SAE-de-nokeypad', 'SAE-us-keypad', # 'SAE-us-nokeypad', 'ergonomic-us' + # + # explicitly state the use of perl here so that it works on windows too + # + a_rule = 'perl ../tools/fmt-bindings --platform="%s" --winkey="%s" --accelmap <${SRC} >${TGT}' % (sys.platform, bld.env['WINDOWS_KEY'] ) for b in [ 'mnemonic-us' ] : obj = bld( target = b + '.bindings', source = b + '.bindings.in', - rule = '../tools/fmt-bindings --platform="%s" --winkey="%s" --accelmap <${SRC} >${TGT}' % (sys.platform, bld.env['WINDOWS_KEY'] ) + rule = a_rule ) obj.install_path = os.path.join(bld.env['SYSCONFDIR'], 'ardour3') diff --git a/libs/ardour/ardour/debug.h b/libs/ardour/ardour/debug.h index c26710b620..d5d81b8772 100644 --- a/libs/ardour/ardour/debug.h +++ b/libs/ardour/ardour/debug.h @@ -35,6 +35,7 @@ namespace PBD { LIBARDOUR_API extern uint64_t SnapBBT; LIBARDOUR_API extern uint64_t Configuration; LIBARDOUR_API extern uint64_t Latency; + LIBARDOUR_API extern uint64_t Peaks; LIBARDOUR_API extern uint64_t Processors; LIBARDOUR_API extern uint64_t ProcessThreads; LIBARDOUR_API extern uint64_t Graph; diff --git a/libs/ardour/ardour/directory_names.h b/libs/ardour/ardour/directory_names.h index 9eb2254219..db5d770739 100644 --- a/libs/ardour/ardour/directory_names.h +++ b/libs/ardour/ardour/directory_names.h @@ -27,6 +27,7 @@ namespace ARDOUR { LIBARDOUR_API extern const char* const old_sound_dir_name; LIBARDOUR_API extern const char* const sound_dir_name; + LIBARDOUR_API extern const char* const ladspa_dir_name; LIBARDOUR_API extern const char* const midi_dir_name; LIBARDOUR_API extern const char* const midi_patch_dir_name; LIBARDOUR_API extern const char* const video_dir_name; diff --git a/libs/ardour/ardour/session_event.h b/libs/ardour/ardour/session_event.h index d4102a62ef..1283f32004 100644 --- a/libs/ardour/ardour/session_event.h +++ b/libs/ardour/ardour/session_event.h @@ -109,7 +109,7 @@ public: boost::shared_ptr region; - SessionEvent (Type t, Action a, framepos_t when, framepos_t where, double spd, bool yn = false, bool yn2 = false, bool yn3 = false) + SessionEvent (Type t, Action a, framepos_t when, framepos_t where, double spd, bool yn = false, bool yn2 = false, bool yn3 = false) : type (t) , action (a) , action_frame (when) @@ -151,7 +151,7 @@ private: friend class Butler; }; -class LIBARDOUR_API SessionEventManager { +class SessionEventManager { public: SessionEventManager () : pending_events (2048), auto_loop_event(0), punch_out_event(0), punch_in_event(0) {} diff --git a/libs/ardour/audio_buffer.cc b/libs/ardour/audio_buffer.cc index b4e2a55ac2..aa4f64755a 100644 --- a/libs/ardour/audio_buffer.cc +++ b/libs/ardour/audio_buffer.cc @@ -88,7 +88,7 @@ AudioBuffer::check_silence (pframes_t nframes, bool wholebuffer, pframes_t& n) c void AudioBuffer::silence (framecnt_t len, framecnt_t offset) { - pframes_t n = 0; + if (!_silent) { assert(_capacity > 0); assert(offset + len <= _capacity); diff --git a/libs/ardour/audio_diskstream.cc b/libs/ardour/audio_diskstream.cc index f4d10c2043..dd2dcf324e 100644 --- a/libs/ardour/audio_diskstream.cc +++ b/libs/ardour/audio_diskstream.cc @@ -1789,7 +1789,7 @@ AudioDiskstream::get_state () LocaleGuard lg (X_("POSIX")); boost::shared_ptr c = channels.reader(); - snprintf (buf, sizeof(buf), "%zd", c->size()); + snprintf (buf, sizeof(buf), "%u", (unsigned int) c->size()); node.add_property ("channels", buf); if (!capturing_sources.empty() && _session.get_record_enabled()) { diff --git a/libs/ardour/io.cc b/libs/ardour/io.cc index ebd295411e..2cc213f797 100644 --- a/libs/ardour/io.cc +++ b/libs/ardour/io.cc @@ -1414,7 +1414,7 @@ IO::find_port_hole (const char* base) std::vector buf (AudioEngine::instance()->port_name_size()); PortSet::iterator i = _ports.begin(); - snprintf (&buf[0], jack_port_name_size(), _("%s %u"), base, n); + snprintf (&buf[0], buf.size()+1, _("%s %u"), base, n); for ( ; i != _ports.end(); ++i) { if (string(i->name()) == string(&buf[0])) { diff --git a/libs/ardour/mtc_slave.cc b/libs/ardour/mtc_slave.cc index 0dee2a071b..1a1c5f2bec 100644 --- a/libs/ardour/mtc_slave.cc +++ b/libs/ardour/mtc_slave.cc @@ -309,11 +309,7 @@ MTC_Slave::update_mtc_time (const MIDI::byte *msg, bool was_full, framepos_t now to use a timestamp indicating when this MTC time was received. example: when we received a locate command via MMC. */ -#ifdef COMPILER_MSVC - DEBUG_TRACE (DEBUG::MTC, string_compose ("MTC::update_mtc_time - TID:%1\n", ::pthread_self().p)); -#else - DEBUG_TRACE (DEBUG::MTC, string_compose ("MTC::update_mtc_time - TID:%1\n", ::pthread_self())); -#endif + DEBUG_TRACE (DEBUG::MTC, string_compose ("MTC::update_mtc_time - TID:%1\n", pthread_name())); TimecodeFormat tc_format; bool reset_tc = true; diff --git a/libs/ardour/panner_search_path.cc b/libs/ardour/panner_search_path.cc index 2889063ca4..c400aa6c3b 100644 --- a/libs/ardour/panner_search_path.cc +++ b/libs/ardour/panner_search_path.cc @@ -35,14 +35,11 @@ Searchpath panner_search_path () { Searchpath spath(user_config_directory ()); + spath += ardour_dll_directory (); spath.add_subdirectory_to_paths(panner_dir_name); -<<<<<<< HEAD - spath += SearchPath(Glib::getenv(panner_env_variable_name)); -======= - spath += Searchpath(Glib::getenv(panner_env_variable_name)); ->>>>>>> windows+cc + return spath; } diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc index bbd3432205..5c3ffae3cc 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -136,14 +136,7 @@ Session::pre_engine_init (string fullpath) /* discover canonical fullpath */ - char buf[PATH_MAX+1]; - if (!realpath (fullpath.c_str(), buf) && (errno != ENOENT)) { - error << string_compose(_("Could not use path %1 (%2)"), buf, strerror(errno)) << endmsg; - destroy (); - throw failed_constructor(); - } - - _path = string(buf); + _path = canonical_path(fullpath); /* we require _path to end with a dir separator */ diff --git a/libs/ardour/test/audio_engine_test.cc b/libs/ardour/test/audio_engine_test.cc new file mode 100644 index 0000000000..b992caf73e --- /dev/null +++ b/libs/ardour/test/audio_engine_test.cc @@ -0,0 +1,53 @@ +#include + +#include "ardour/audioengine.h" +#include "ardour/audio_backend.h" +#include "ardour/backend_search_path.h" + +#include "audio_engine_test.h" +#include "test_common.h" + +CPPUNIT_TEST_SUITE_REGISTRATION (AudioEngineTest); + +using namespace std; +using namespace ARDOUR; +using namespace PBD; + +void +print_audio_backend_info (AudioBackendInfo const* abi) +{ + cerr << "Audio Backend, name:" << abi->name << endl; +} + +void +AudioEngineTest::test_backends () +{ + AudioEngine* engine = AudioEngine::create (); + + CPPUNIT_ASSERT (engine); + + std::vector backends = engine->available_backends (); + + CPPUNIT_ASSERT (backends.size () != 0); + + for (std::vector::const_iterator i = backends.begin(); + i != backends.end(); ++i) { + print_audio_backend_info(*i); + } +} + +void +AudioEngineTest::test_start () +{ + AudioEngine* engine = AudioEngine::create (); + + CPPUNIT_ASSERT_NO_THROW (engine->set_default_backend ()); + + init_post_engine (); + + CPPUNIT_ASSERT (engine->start () == 0); + + // sleep + // stop + // destroy +} diff --git a/libs/ardour/test/audio_engine_test.h b/libs/ardour/test/audio_engine_test.h new file mode 100644 index 0000000000..9a6d9cc241 --- /dev/null +++ b/libs/ardour/test/audio_engine_test.h @@ -0,0 +1,14 @@ +#include +#include + +class AudioEngineTest : public CppUnit::TestFixture +{ + CPPUNIT_TEST_SUITE (AudioEngineTest); + CPPUNIT_TEST (test_backends); + CPPUNIT_TEST (test_start); + CPPUNIT_TEST_SUITE_END (); + +public: + void test_backends (); + void test_start (); +}; diff --git a/libs/ardour/wscript b/libs/ardour/wscript index 21f745e20b..29efde2693 100644 --- a/libs/ardour/wscript +++ b/libs/ardour/wscript @@ -259,9 +259,6 @@ def configure(conf): autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0') - if re.search ("linux", sys.platform) != None: - autowaf.check_pkg(conf, 'alsa', uselib_store='ALSA') - if Options.options.lv2: autowaf.check_pkg(conf, 'lv2', uselib_store='LV2', atleast_version='1.0.0', mandatory=True) @@ -445,6 +442,7 @@ def build(bld): testcommon.source += [ 'sse_functions_64bit.s' ] if bld.env['SINGLE_TESTS']: + create_ardour_test_program(bld, obj.includes, 'audio_engine_test', 'test_audio_engine', ['test/audio_engine_test.cc']) create_ardour_test_program(bld, obj.includes, 'automation_list_property_test', 'test_automation_list_property', ['test/automation_list_property_test.cc']) create_ardour_test_program(bld, obj.includes, 'bbt', 'test_bbt', ['test/bbt_test.cc']) create_ardour_test_program(bld, obj.includes, 'tempo', 'test_tempo', ['test/tempo_test.cc']) @@ -463,6 +461,7 @@ def build(bld): create_ardour_test_program(bld, obj.includes, 'session_test', 'test_session', ['test/session_test.cc']) test_sources = ''' + test/audio_engine_test.cc test/automation_list_property_test.cc test/bbt_test.cc test/tempo_test.cc diff --git a/libs/backends/jack/jack_connection.cc b/libs/backends/jack/jack_connection.cc index 09e6c9d6e7..fee1b299ba 100644 --- a/libs/backends/jack/jack_connection.cc +++ b/libs/backends/jack/jack_connection.cc @@ -21,6 +21,8 @@ #include #include +#include + #include "pbd/epa.h" #include "jack_connection.h" @@ -145,7 +147,7 @@ JackConnection::close () _jack = 0; /* If we started JACK, it will be closing down */ - usleep (500000); + Glib::usleep (500000); Disconnected (""); /* EMIT SIGNAL */ diff --git a/libs/backends/jack/jack_session.cc b/libs/backends/jack/jack_session.cc index 7cd7f6c62b..60d11a8f0c 100644 --- a/libs/backends/jack/jack_session.cc +++ b/libs/backends/jack/jack_session.cc @@ -25,6 +25,8 @@ #include #include +#include "pbd/localtime_r.h" + #include "ardour/audioengine.h" #include "ardour/filename_extensions.h" #include "ardour/session.h" diff --git a/libs/backends/jack/jack_utils.cc b/libs/backends/jack/jack_utils.cc index 331c164353..01af13fe9c 100644 --- a/libs/backends/jack/jack_utils.cc +++ b/libs/backends/jack/jack_utils.cc @@ -891,11 +891,7 @@ ARDOUR::get_jack_command_line_string (JackCommandLineOptions& options, string& c ostringstream oss; for (vector::const_iterator i = args.begin(); i != args.end();) { -#ifdef WIN32 - oss << quote_string (*i); -#else oss << *i; -#endif if (++i != args.end()) oss << ' '; } diff --git a/libs/backends/jack/wscript b/libs/backends/jack/wscript index 4e54af0be5..b31d9b5d56 100644 --- a/libs/backends/jack/wscript +++ b/libs/backends/jack/wscript @@ -20,6 +20,8 @@ def options(opt): autowaf.set_options(opt) def configure(conf): + autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.121.0') + # # PortAudio is currently used to get a list of audio device names. # We should find a better way to do this that doesn't involve this @@ -43,7 +45,7 @@ def build(bld): obj.includes = ['.'] obj.name = 'jack_audiobackend' obj.target = 'jack_audiobackend' - if Options.options.dist_target == 'mingw': + if (bld.env['build_target'] == 'mingw'): obj.uselib = [ 'JACK', 'PORTAUDIO' ] else: obj.uselib = [ 'JACK' ] diff --git a/libs/gtkmm2ext/wscript b/libs/gtkmm2ext/wscript index c87e1aa1d0..bae2fbe439 100644 --- a/libs/gtkmm2ext/wscript +++ b/libs/gtkmm2ext/wscript @@ -87,7 +87,7 @@ def build(bld): if bld.is_defined ('INTERNAL_SHARED_LIBS'): obj = bld.shlib(features = 'c cxx cshlib cxxshlib', source=gtkmm2ext_sources) # defines for this library - obj.defines = [ 'LIBGTKMM2EXT_DLL_EXPORTS=1' ] + obj.defines = [ 'LIBGTKMM2EXT_DLL_EXPORTS', 'ABSTRACT_UI_EXPORTS' ] obj.cxxflags = [ '-fvisibility=hidden' ] obj.cflags = [ '-fvisibility=hidden' ] else: diff --git a/libs/pbd/fpu.cc b/libs/pbd/fpu.cc index 73bc7e599d..b12d341366 100644 --- a/libs/pbd/fpu.cc +++ b/libs/pbd/fpu.cc @@ -39,11 +39,14 @@ FPU::FPU () _flags = Flags (0); +#if defined(__MINGW64__) // Vkamyshniy: under __MINGW64__ the assembler code below is not compiled + return; +#endif + #if !( (defined __x86_64__) || (defined __i386__) ) // !ARCH_X86 return; #else - #ifndef _LP64 //USE_X86_64_ASM asm volatile ( "mov $1, %%eax\n" diff --git a/libs/pbd/pathexpand.cc b/libs/pbd/pathexpand.cc index 5784ec9428..26454e4164 100644 --- a/libs/pbd/pathexpand.cc +++ b/libs/pbd/pathexpand.cc @@ -33,12 +33,57 @@ using std::string; using std::vector; +#ifdef COMPILER_MINGW + +#include +#include + +/**************************************************************** + * Emulate POSIX realpath() using Win32 _fullpath() since realpath() + * is not available. + * + * Returns: + * On Success: A pointer to the resolved (absolute) path + * On Failure: 0 (NULL) + */ + +static char* +realpath (const char *original_path, char resolved_path[_MAX_PATH+1]) +{ + char *rpath = 0; + bool bIsSymLink = false; // We'll probably need to test the incoming path + // to find out if it points to a Windows shortcut + // (or a hard link) and set this appropriately. + + if (bIsSymLink) { + // At the moment I'm not sure if Windows '_fullpath()' is directly + // equivalent to POSIX 'realpath()' - in as much as the latter will + // resolve the supplied path if it happens to point to a symbolic + // link ('_fullpath()' probably DOESN'T do this but I'm not really + // sure if Ardour needs such functionality anyway). Therefore we'll + // possibly need to add that functionality here at a later date. + } else { + char temp[(_MAX_PATH+1)*6]; // Allow for maximum length of a path in wchar characters + + // POSIX 'realpath()' requires that the buffer size is at + // least PATH_MAX+1, so assume that the user knew this !! + + rpath = _fullpath (temp, Glib::locale_from_utf8 (original_path).c_str(), _MAX_PATH); + + if (0 != rpath) { + snprintf (resolved_path, _MAX_PATH+1, "%s", Glib::locale_to_utf8 (temp).c_str()); + } + + } + + return (rpath); +} + +#endif // COMPILER_MINGW + string PBD::canonical_path (const std::string& path) { -#ifdef COMPILER_MINGW - return path; -#else char buf[PATH_MAX+1]; if (!realpath (path.c_str(), buf) && (errno != ENOENT)) { @@ -46,7 +91,6 @@ PBD::canonical_path (const std::string& path) } return string (buf); -#endif } string diff --git a/libs/pbd/pbd/abstract_ui.h b/libs/pbd/pbd/abstract_ui.h index 1ceefe7b3b..dc5620b2ef 100644 --- a/libs/pbd/pbd/abstract_ui.h +++ b/libs/pbd/pbd/abstract_ui.h @@ -52,7 +52,7 @@ class Touchable; template -class /*ABSTRACT_UI_API*/ AbstractUI : public BaseUI /* see notes in visibility.h about why this is not LIBPBD_API */ +class ABSTRACT_UI_API AbstractUI : public BaseUI { public: AbstractUI (const std::string& name); @@ -75,7 +75,7 @@ class /*ABSTRACT_UI_API*/ AbstractUI : public BaseUI /* see notes in visibility. }; typedef typename RequestBuffer::rw_vector RequestBufferVector; -#if defined(__MINGW32__) +#if defined(__MINGW32__) && !defined (__MINGW64__) struct pthread_cmp { diff --git a/libs/taglib/wscript b/libs/taglib/wscript index 8c1f1fdd1e..709eb0fd90 100644 --- a/libs/taglib/wscript +++ b/libs/taglib/wscript @@ -34,6 +34,79 @@ def build(bld): if bld.is_defined('USE_EXTERNAL_LIBS'): return + # the story: taglib distributes its headers all over the place then copies them + # into place during an install. but we're not planning to do an install. so this + # doesn't work when code does #include . + # + # one approach is to store symlinks in the repository. but this breaks on windows + # where symlink support and git are not very well developed (if at all) + # + # the approach here is to copy the header files as part of the build step, if necessary + + headers = [ + './ape/apefooter.h', + './ape/apeitem.h', + './ape/apetag.h', + './mpeg/id3v2/frames/attachedpictureframe.h', + './mpeg/id3v2/frames/commentsframe.h', + './flac/flacfile.h', + './flac/flacproperties.h', + './mpeg/id3v2/frames/generalencapsulatedobjectframe.h', + './mpeg/id3v1/id3v1genres.h', + './mpeg/id3v1/id3v1tag.h', + './mpeg/id3v2/id3v2extendedheader.h', + './mpeg/id3v2/id3v2footer.h', + './mpeg/id3v2/id3v2framefactory.h', + './mpeg/id3v2/id3v2frame.h', + './mpeg/id3v2/id3v2header.h', + './mpeg/id3v2/id3v2synchdata.h', + './mpeg/id3v2/id3v2tag.h', + './mpc/mpcfile.h', + './mpc/mpcproperties.h', + './mpeg/mpegfile.h', + './mpeg/mpegheader.h', + './mpeg/mpegproperties.h', + './ogg/oggfile.h', + './ogg/flac/oggflacfile.h', + './ogg/oggpage.h', + './ogg/oggpageheader.h', + './mpeg/id3v2/frames/relativevolumeframe.h', + './ogg/speex/speexfile.h', + './ogg/speex/speexproperties.h', + './toolkit/taglib.h', + './toolkit/tbytevector.h', + './toolkit/tbytevectorlist.h', + './toolkit/tdebug.h', + './mpeg/id3v2/frames/textidentificationframe.h', + './toolkit/tfile.h', + './toolkit/tlist.h', + 'toolkit/tlist.tcc', + './toolkit/tmap.h', + 'toolkit/tmap.tcc', + './trueaudio/trueaudiofile.h', + './trueaudio/trueaudioproperties.h', + './toolkit/tstring.h', + './toolkit/tstringlist.h', + './toolkit/unicode.h', + './mpeg/id3v2/frames/uniquefileidentifierframe.h', + './mpeg/id3v2/frames/unknownframe.h', + './mpeg/id3v2/frames/unsynchronizedlyricsframe.h', + './mpeg/id3v2/frames/urllinkframe.h', + './ogg/vorbis/vorbisfile.h', + './ogg/vorbis/vorbisproperties.h', + './wavpack/wavpackfile.h', + './wavpack/wavpackproperties.h', + './mpeg/xingheader.h', + './ogg/xiphcomment.h', + ] + + for h in headers: + tgt = bld.path.get_bld().make_node (os.path.join ('taglib', os.path.basename (h))) + if not os.path.exists (tgt.bldpath()): + bld (rule = autowaf.copyfile, + source = bld.path.make_node (os.path.join ('taglib', h)), + target = tgt) + # Library obj = bld(features = 'cxx cxxshlib') sources = bld.path.ant_glob('taglib/*.cpp') @@ -69,7 +142,7 @@ def build(bld): taglib/ogg/speex taglib/ogg/flac '''.split() - obj.export_includes = ['.', 'taglib', 'taglib/toolkit'] + obj.export_includes = ['.', 'taglib' ] obj.includes = include_dirs obj.defines = ['MAKE_TAGLIB_LIB'] obj.name = 'libtaglib' diff --git a/tools/autowaf.py b/tools/autowaf.py index 87e19d5aea..e97c555362 100644 --- a/tools/autowaf.py +++ b/tools/autowaf.py @@ -10,6 +10,7 @@ import glob import os import subprocess import sys +import shutil from waflib import Configure, Context, Logs, Node, Options, Task, Utils from waflib.TaskGen import feature, before, after @@ -91,6 +92,12 @@ def set_options(opt, debug_by_default=False): help="LV2 bundles [Default: LIBDIR/lv2]") g_step = 1 +def copyfile (task): + # a cross-platform utility for copying files as part of tasks + src = task.inputs[0].abspath() + tgt = task.outputs[0].abspath() + shutil.copy2 (src, tgt) + def check_header(conf, lang, name, define='', mandatory=True): "Check for a header" includes = '' # search default system include paths diff --git a/tools/windows_packaging/Fedora-16-mingw.txt b/tools/windows_packaging/Fedora-16-mingw.txt deleted file mode 100644 index 23c9a749ce..0000000000 --- a/tools/windows_packaging/Fedora-16-mingw.txt +++ /dev/null @@ -1,41 +0,0 @@ - -Fedora Packages are installed via $ yum install foobar - -wine, needed to run some tests during the configure process - -mingw32-gcc - -mingw32-libogg - -mingw32-flac not in repo <- requires libogg - -mingw32-libvorbis - -mingw32-libsndfile not in repo <- requires flac, vorbis -mingw32-libsamplerate not in repo <- requires sndfile for examples? - -mingw32-gtkmm24, this will pull in all the gtk+ deps etc - -mingw32-gtk2-engines not in repo <- provides clearlooks - -mingw32-libglade2, required for gnomecanvas - -mingw32-libart_lgpl not in repo -mingw32-libgnomecanvas not in repo <- requires libart, libglade2 -mingw32-libgnomecanvasmm not in repo <- requires - -mingw32-portaudio not in repo - -mingw32-jack-audio-connection-kit not in repo - -mingw32-fftw not in repo - -mingw32-curl - -Optional - -mingw32-cppunit, if tests enabled -mingw32-gdb, for debugging - -qemu-kvm to run virt images - diff --git a/tools/windows_packaging/README b/tools/windows_packaging/README index cb01c5675f..4a766685c5 100644 --- a/tools/windows_packaging/README +++ b/tools/windows_packaging/README @@ -1,15 +1,15 @@ Building Ardour for Windows The windows build is compiled and tested with the MinGW compiler that is -packaged in Fedora, Currently using Fedora 16. There are many cross compiled -"mingw" libraries that Ardour requires that are also available on Fedora but +packaged in Fedora, Currently using Fedora 19. There are many cross compiled +"mingw" libraries that Ardour requires that are available on Fedora but not all are yet. Prerequisites -Follow instructions in Fedora-16.txt to build and/or install the required -packages. +For setting up the required packages to build Ardour refer to the README +file located at https://github.com/mojofunk/fedora-mingw-ardour Configuring @@ -28,6 +28,8 @@ These scripts both source the mingw-env.sh script to setup the appropriate environment variables and then call waf with a specific set of parameters that are appropriate to configure for the windows build. +There is also configure-distcc-debug.sh and configure-distcc-release.sh that +configure to use distcc for building. Building @@ -44,6 +46,14 @@ windows executable. This could probably be done in the waf scripts specifically for the windows build but I felt it simpler to do it in the packaging script for now. +--------- NOTE -------------------- + +package_win32.sh is an updated/extended version of package.sh from Valeriy. It +should probably be merged with package.sh at some point. It uses a number of +additional resources located under mingw64/ + +----------------------------------- + The packaging script then copies the JACK deamon and all the required mingw shared libraries from the host system into the packaging directory. The shared libraries or dll's are placed in the same directory as the Ardour @@ -73,8 +83,8 @@ in a separate terminal(Command Prompt) before starting Ardour so that they are not both writing to the same terminal. This will probably be fixed at some point so when jackd is started by Ardour the output is redirected etc. -The cptovm.sh and startvm.sh scripts are intended for testing Ardour in a -Windows XP virt image and may need to be altered to be used successfully. +The cptovmshare.sh script will copy the package to a directory specified in the +ARDOUR_VM_SHARE_DIR for testing in a virtual machine. Testing @@ -82,6 +92,8 @@ Testing When configured for debugging there are a number of test programs(prefixed with test_) included in the package. +The tests for libpbd, libevoral and libardour can be run under wine from the +windows packaging directory using the wine-*-tests.sh scripts Debugging @@ -92,17 +104,43 @@ When configured for debugging the package contains gdb along with a .gdbinit file to automatically set the source directory so that the "list" gdb command will show the source code corresponding to the current stack frame. -Use break `Somenamespace::somepartialsymbolname + tab to list symbols, then remove -` to set break. If you press tab with when there are thousands of possible -matching symbols be prepared to wait a long time(this can also cause gdb to use a -lot of memory). +New versions of gdb will not load a .gdbinit file unless it is located in the directory +set in the HOME environment variable and auto-load safe-path is set appropriately. -For reasons I've yet to determine many symbols are not accessible so the best way -to set a breakpoint is by using filename and line number. +So the gdbinit_home file needs to be moved to directory set in %USERPROFILE% and +gdb started via gdb.bat for source file listing to work. + +The gdb batch scripts cannot be used if the package directory is on a network share +so the package will need to be copied to a local drive first. + +When starting gdb using gdb.bat the Ardour executable needs to be set as the program +to be debugged with the "file" command + +e.g (gdb) file ardour-3.5.exe + +You can then set a break point at main() with the "break" command as usual + +e.g (gdb) break main + +To set a breakpoint in a dll/shared library like libardour you need to wait for +the symbols to be loaded which only occurs once the program has been executed using +the "run" command + +You can set a breakpoint at a function + +e.g break `Somenamespace::somepartialsymbolname + tab to list symbols + +then remove ` to set the breakpoint. + +If you press tab with when there are thousands of possible matching symbols be +prepared to wait a long time(this can also cause gdb to use a lot of memory). +For this reason I prefer to set breakpoints by specifying the source file and line +number. e.g (gdb) break audiosource.cc:976 -but this seems to only work after running Ardour at least once. +using "catch throw" or "catch catch" can be useful to break at points where exceptions +are thrown or caught. They are a number of glib debugging options see diff --git a/tools/windows_packaging/configure-distcc-debug.sh b/tools/windows_packaging/configure-distcc-debug.sh new file mode 100755 index 0000000000..501e849860 --- /dev/null +++ b/tools/windows_packaging/configure-distcc-debug.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +. ./mingw-env.sh + +export CC="distcc $HOST-gcc" +export CPP="distcc $HOST-g++" +export CXX="distcc $HOST-g++" + +. ./print-env.sh + +cd $BASE || exit 1 +./waf configure --prefix="/" --bindir="/" --configdir="/share" --noconfirm --no-lv2 --test --single-tests --dist-target=mingw "$@" diff --git a/tools/windows_packaging/configure-distcc-release.sh b/tools/windows_packaging/configure-distcc-release.sh new file mode 100755 index 0000000000..19cabf9c44 --- /dev/null +++ b/tools/windows_packaging/configure-distcc-release.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +. ./mingw-env.sh + +export CC="distcc $HOST-gcc" +export CPP="distcc $HOST-g++" +export CXX="distcc $HOST-g++" + +. ./print-env.sh + +cd $BASE || exit 1 +./waf configure --prefix="/" --bindir="/" --configdir="/share" --optimize --noconfirm --no-lv2 --dist-target=mingw "$@" diff --git a/tools/windows_packaging/cptovm.sh b/tools/windows_packaging/cptovm.sh deleted file mode 100755 index 62e6fd6a27..0000000000 --- a/tools/windows_packaging/cptovm.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash - -. ./mingw-env.sh - -TMP_DIR=tmp -LOOP_DEV=/dev/loop4 - -cd $BASE || exit 1 - -if [ ! -d $TMP_DIR ]; then - echo "Creating temp directory to mount vm image ..." - mkdir $TMP_DIR || exit 1 -fi - -echo "mounting vm image as loopback device ..." - -sudo mount -o loop=$LOOP_DEV,offset=32256 $VIRT_IMAGE_PATH $TMP_DIR || exit 1 - -if [ -d $TMP_DIR/$PACKAGE_DIR ]; then - echo "Removing old copy of $PACKAGE_DIR from vm image ..." - rm -rf $TMP_DIR/$PACKAGE_DIR || exit 1 -fi - -echo "Copying $PACKAGE_DIR to vm image ..." -cp -r $PACKAGE_DIR $TMP_DIR || exit 1 - -if [ "$1" == "--data" ]; then - DATA_DIR=data - - if [ -d $TMP_DIR/$DATA_DIR ]; then - echo "Removing old copy of $DATA_DIR from vm image ..." - rm -rf $TMP_DIR/$DATA_DIR || exit 1 - fi - - echo "Copying $DATA_DIR to vm image ..." - cp -r $DATA_DIR $TMP_DIR || exit 1 -fi - - -# in case mount is busy -sleep 2 - -echo "Unmounting vm image ..." - -sudo umount -d tmp - -echo "Removing temp directory used to mount vm image ..." -rm -rf $TMP_DIR || exit 1 - -if sudo losetup $LOOP_DEV; then - echo "sleeping for 10 seconds and trying again ..." - sleep 10 - if sudo losetup -d $LOOP_DEV; then - echo "Unmounted loopback device successfully" - exit 0 - else: - echo "Unmounting loopback device unsuccessful, you will need to use losetup -d to unmount device" - exit 1 - fi -fi - -exit 0 diff --git a/tools/windows_packaging/cptovmshare.sh b/tools/windows_packaging/cptovmshare.sh new file mode 100755 index 0000000000..f447f57b5c --- /dev/null +++ b/tools/windows_packaging/cptovmshare.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +. ./mingw-env.sh + +cd $BASE || exit 1 + +if [ -z $ARDOUR_VM_SHARE_DIR ] +then + echo "You must set ARDOUR_VM_SHARE_DIR in your environment to use this script!" + exit 1 +fi + +if [ -d $ARDOUR_VM_SHARE_DIR/$PACKAGE_DIR ]; then + echo "Removing $PACKAGE_DIR from vm share directory ..." + rm -rf $ARDOUR_VM_SHARE_DIR/$PACKAGE_DIR || exit 1 +fi + +echo "Copying $PACKAGE_DIR to vm share directory $ARDOUR_VM_SHARE_DIR ..." +cp -r $PACKAGE_DIR $ARDOUR_VM_SHARE_DIR || exit 1 diff --git a/tools/windows_packaging/gdb-ardour.bat b/tools/windows_packaging/gdb-ardour.bat new file mode 100644 index 0000000000..7d290b0791 --- /dev/null +++ b/tools/windows_packaging/gdb-ardour.bat @@ -0,0 +1,4 @@ +set HOME=%USERPROFILE% +echo "set home to %HOME%" + +START gdb.exe ardour-3.3.exe diff --git a/tools/windows_packaging/gdb.bat b/tools/windows_packaging/gdb.bat new file mode 100644 index 0000000000..90f586b6c7 --- /dev/null +++ b/tools/windows_packaging/gdb.bat @@ -0,0 +1,4 @@ +set HOME=%USERPROFILE% +echo "set home to %HOME%" + +START gdb.exe diff --git a/tools/windows_packaging/gdbinit_home b/tools/windows_packaging/gdbinit_home new file mode 100644 index 0000000000..910710cf8c --- /dev/null +++ b/tools/windows_packaging/gdbinit_home @@ -0,0 +1 @@ +set auto-load safe-path / diff --git a/tools/windows_packaging/mingw-env.sh b/tools/windows_packaging/mingw-env.sh index 616f89af5e..983e6d0b9b 100755 --- a/tools/windows_packaging/mingw-env.sh +++ b/tools/windows_packaging/mingw-env.sh @@ -26,19 +26,18 @@ BUILD_DIR=$BASE/build BUILD_CACHE_FILE=$BUILD_DIR/c4che/_cache.py TOOLS_DIR=$BASE/tools/windows_packaging -. ../define_versions.sh - APPNAME=`grep -m 1 '^APPNAME' $BASE/wscript | awk '{print $3}' | sed "s/'//g"` # These are only relevant after a build if test -f $BUILD_CACHE_FILE then + . ../define_versions.sh + # Figure out the Build Type - if grep -q "DEBUG = True" $BUILD_CACHE_FILE; then - DEBUG=1 - PACKAGE_DIR="$APPNAME-${version}-win32-dbg" + if [ x$DEBUG = xT ]; then + PACKAGE_DIR="$APPNAME-${release_version}-win32-dbg" else - PACKAGE_DIR="$APPNAME-${version}-win32" + PACKAGE_DIR="$APPNAME-${release_version}-win32" fi if grep -q "BUILD_TESTS = True" $BUILD_CACHE_FILE; then @@ -47,6 +46,3 @@ then ARDOUR_DATA_DIR=$PACKAGE_DIR/share/ardour3 fi - -# put this somewhere better... -VIRT_IMAGE_PATH=$HOME/Data/virt-images/winxp.raw diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/10-autohint.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/10-autohint.conf new file mode 100644 index 0000000000..c597bf41da --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/10-autohint.conf @@ -0,0 +1,8 @@ + + + + + + true + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/10-no-sub-pixel.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/10-no-sub-pixel.conf new file mode 100644 index 0000000000..87ada4ef2d --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/10-no-sub-pixel.conf @@ -0,0 +1,8 @@ + + + + + + none + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/10-sub-pixel-bgr.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/10-sub-pixel-bgr.conf new file mode 100644 index 0000000000..e1f64fd33b --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/10-sub-pixel-bgr.conf @@ -0,0 +1,8 @@ + + + + + + bgr + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/10-sub-pixel-rgb.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/10-sub-pixel-rgb.conf new file mode 100644 index 0000000000..2b49fe3d24 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/10-sub-pixel-rgb.conf @@ -0,0 +1,8 @@ + + + + + + rgb + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/10-sub-pixel-vbgr.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/10-sub-pixel-vbgr.conf new file mode 100644 index 0000000000..5947650df1 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/10-sub-pixel-vbgr.conf @@ -0,0 +1,8 @@ + + + + + + vbgr + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/10-sub-pixel-vrgb.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/10-sub-pixel-vrgb.conf new file mode 100644 index 0000000000..84481bde2d --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/10-sub-pixel-vrgb.conf @@ -0,0 +1,8 @@ + + + + + + vrgb + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/10-unhinted.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/10-unhinted.conf new file mode 100644 index 0000000000..025ae2a82a --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/10-unhinted.conf @@ -0,0 +1,8 @@ + + + + + + false + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/20-fix-globaladvance.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/20-fix-globaladvance.conf new file mode 100644 index 0000000000..2a9c063257 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/20-fix-globaladvance.conf @@ -0,0 +1,28 @@ + + + + + + GulimChe + false + + + + DotumChe + false + + + + BatangChe + false + + + + GungsuhChe + false + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/20-unhint-small-vera.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/20-unhint-small-vera.conf new file mode 100644 index 0000000000..c4ebee9d44 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/20-unhint-small-vera.conf @@ -0,0 +1,48 @@ + + + + + + + + Bitstream Vera Sans + + + 7.5 + + + false + + + + + + Bitstream Vera Serif + + + 7.5 + + + false + + + + + + Bitstream Vera Sans Mono + + + 7.5 + + + false + + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/25-unhint-nonlatin.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/25-unhint-nonlatin.conf new file mode 100644 index 0000000000..ffb70c69f6 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/25-unhint-nonlatin.conf @@ -0,0 +1,128 @@ + + + + + + + + + Kochi Mincho + + + false + + + + + Kochi Gothic + + + false + + + + + Sazanami Mincho + + + false + + + + + Sazanami Gothic + + + false + + + + + Baekmuk Batang + + + false + + + + + Baekmuk Dotum + + + false + + + + + Baekmuk Gulim + + + false + + + + + Baekmuk Headline + + + false + + + + + AR PL Mingti2L Big5 + + + false + + + + + AR PL ShanHeiSun Uni + + + false + + + + + AR PL KaitiM Big5 + + + false + + + + + AR PL ZenKai Uni + + + false + + + + + AR PL SungtiL GB + + + false + + + + + AR PL KaitiM GB + + + false + + + + + ZYSong18030 + + + false + + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/30-metric-aliases.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/30-metric-aliases.conf new file mode 100644 index 0000000000..702a495ea6 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/30-metric-aliases.conf @@ -0,0 +1,211 @@ + + + + + + + + + + + Nimbus Sans L + + Helvetica + + + + + Nimbus Roman No9 L + + Times + + + + + Nimbus Mono L + + Courier + + + + + + + Liberation Sans + Albany + Albany AMT + + Arial + + + + + Liberation Serif + Thorndale + Thorndale AMT + + Times New Roman + + + + + Liberation Mono + Cumberland + Cumberland AMT + + Courier New + + + + + + + + + + + Helvetica + + Arial + + + + + Times + + Times New Roman + + + + + Courier + + Courier New + + + + + + + Arial + + Helvetica + + + + + Times New Roman + + Times + + + + + Courier New + + Courier + + + + + + + + + + + Helvetica + + Nimbus Sans L + + + + + Times + + Nimbus Roman No9 L + + + + + Courier + + Nimbus Mono L + + + + + + + Arial + + Liberation Sans + Albany + Albany AMT + + + + + Times New Roman + + Liberation Serif + Thorndale + Thorndale AMT + + + + + Courier New + + Liberation Mono + Cumberland + Cumberland AMT + + + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/30-urw-aliases.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/30-urw-aliases.conf new file mode 100644 index 0000000000..9d5920306a --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/30-urw-aliases.conf @@ -0,0 +1,40 @@ + + + + + + Avant Garde + URW Gothic L + + + Bookman + URW Bookman L + + + New Century Schoolbook + Century Schoolbook L + + + Palatino + URW Palladio L + + + Zapf Chancery + URW Chancery L + + + Zapf Dingbats + Dingbats + + + + Symbol + + + Standard Symbols L + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/40-nonlatin.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/40-nonlatin.conf new file mode 100644 index 0000000000..a875db08c3 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/40-nonlatin.conf @@ -0,0 +1,90 @@ + + + + + + + + Nazli + Lotoos + Mitra + Ferdosi + Badr + Zar + Titr + Jadid + Kochi Mincho + AR PL SungtiL GB + AR PL Mingti2L Big5 + MS 明朝 + UnBatang + Baekmuk Batang + MgOpen Canonica + Sazanami Mincho + AR PL ZenKai Uni + ZYSong18030 + FreeSerif + serif + + + + Arshia + Elham + Farnaz + Nasim + Sina + Roya + Koodak + Terafik + Kochi Gothic + AR PL KaitiM GB + AR PL KaitiM Big5 + MS ゴシック + UnDotum + Baekmuk Dotum + SimSun + MgOpen Modata + Sazanami Gothic + AR PL ShanHeiSun Uni + ZYSong18030 + FreeSans + sans-serif + + + + NSimSun + ZYSong18030 + FreeMono + monospace + + + + + Homa + Kamran + Fantezi + Tabassom + fantasy + + + + + IranNastaliq + Nafees Nastaleeq + cursive + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/45-latin.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/45-latin.conf new file mode 100644 index 0000000000..7e41264688 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/45-latin.conf @@ -0,0 +1,77 @@ + + + + + + + + Bitstream Vera Serif + DejaVu Serif + Liberation Serif + Times New Roman + Times + Nimbus Roman No9 L + Luxi Serif + Thorndale AMT + Thorndale + serif + + + + Bitstream Vera Sans + DejaVu Sans + Liberation Sans + Arial + Helvetica + Verdana + Albany AMT + Albany + Nimbus Sans L + Luxi Sans + sans-serif + + + + Bitstream Vera Sans Mono + DejaVu Sans Mono + Liberation Mono + Inconsolata + Courier New + Courier + Andale Mono + Luxi Mono + Cumberland AMT + Cumberland + Nimbus Mono L + monospace + + + + Impact + Copperplate Gothic Std + Cooper Std + Bauhaus Std + fantasy + + + + ITC Zapf Chancery Std + Zapfino + Comic Sans MS + cursive + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/49-sansserif.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/49-sansserif.conf new file mode 100644 index 0000000000..c6209a7d31 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/49-sansserif.conf @@ -0,0 +1,21 @@ + + + + + + + sans-serif + + + serif + + + monospace + + + sans-serif + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/50-user.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/50-user.conf new file mode 100644 index 0000000000..3f8901296b --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/50-user.conf @@ -0,0 +1,7 @@ + + + + + ~/.fonts.conf.d + ~/.fonts.conf + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/51-local.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/51-local.conf new file mode 100644 index 0000000000..ca9fbe1959 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/51-local.conf @@ -0,0 +1,6 @@ + + + + + local.conf + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/60-latin.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/60-latin.conf new file mode 100644 index 0000000000..2107e31e4b --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/60-latin.conf @@ -0,0 +1,70 @@ + + + + + serif + + Bitstream Vera Serif + DejaVu Serif + Times New Roman + Thorndale AMT + Luxi Serif + Nimbus Roman No9 L + Times + + + + sans-serif + + Bitstream Vera Sans + DejaVu Sans + Verdana + Arial + Albany AMT + Luxi Sans + Nimbus Sans L + Helvetica + Lucida Sans Unicode + BPG Glaho International + Tahoma + + + + monospace + + Bitstream Vera Sans Mono + DejaVu Sans Mono + Inconsolata + Andale Mono + Courier New + Cumberland AMT + Luxi Mono + Nimbus Mono L + Courier + + + + + fantasy + + Impact + Copperplate Gothic Std + Cooper Std + Bauhaus Std + + + + + cursive + + ITC Zapf Chancery Std + Zapfino + Comic Sans MS + + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/65-fonts-persian.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/65-fonts-persian.conf new file mode 100644 index 0000000000..0033675a49 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/65-fonts-persian.conf @@ -0,0 +1,419 @@ + + + + + + + + + + + Nesf + Nesf2 + + + Nesf2 + Persian_sansserif_default + + + + + + Nazanin + Nazli + + + Lotus + Lotoos + + + Yaqut + Yaghoot + + + Yaghut + Yaghoot + + + Traffic + Terafik + + + Ferdowsi + Ferdosi + + + Fantezy + Fantezi + + + + + + + + Jadid + Persian_title + + + Titr + Persian_title + + + + + Kamran + + Persian_fantasy + Homa + + + + Homa + + Persian_fantasy + Kamran + + + + Fantezi + Persian_fantasy + + + Tabassom + Persian_fantasy + + + + + Arshia + Persian_square + + + Nasim + Persian_square + + + Elham + + Persian_square + Farnaz + + + + Farnaz + + Persian_square + Elham + + + + Sina + Persian_square + + + + + + + Persian_title + + Titr + Jadid + Persian_serif + + + + + + Persian_fantasy + + Homa + Kamran + Fantezi + Tabassom + Persian_square + + + + + + Persian_square + + Arshia + Elham + Farnaz + Nasim + Sina + Persian_serif + + + + + + + + Elham + + + farsiweb + + + + + + Homa + + + farsiweb + + + + + + Koodak + + + farsiweb + + + + + + Nazli + + + farsiweb + + + + + + Roya + + + farsiweb + + + + + + Terafik + + + farsiweb + + + + + + Titr + + + farsiweb + + + + + + + + + + TURNED-OFF + + + farsiweb + + + + roman + + + + roman + + + + + matrix + 1-0.2 + 01 + + + + + + oblique + + + + + + + + + farsiweb + + + false + + + false + + + false + + + + + + + + + serif + + Nazli + Lotoos + Mitra + Ferdosi + Badr + Zar + + + + + + sans-serif + + Roya + Koodak + Terafik + + + + + + monospace + + + Terafik + + + + + + fantasy + + Homa + Kamran + Fantezi + Tabassom + + + + + + cursive + + IranNastaliq + Nafees Nastaleeq + + + + + + + + + serif + + + 200 + + + 24 + + + Titr + + + + + + + sans-serif + + + 200 + + + 24 + + + Titr + + + + + + + Persian_sansserif_default + + + 200 + + + 24 + + + Titr + + + + + + + + + Persian_sansserif_default + + + Roya + + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/65-khmer.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/65-khmer.conf new file mode 100644 index 0000000000..f9d06f2a97 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/65-khmer.conf @@ -0,0 +1,16 @@ + + + + + serif + + Khmer OS" + + + + sans-serif + + Khmer OS" + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/65-nonlatin.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/65-nonlatin.conf new file mode 100644 index 0000000000..53ac064b0a --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/65-nonlatin.conf @@ -0,0 +1,195 @@ + + + + + serif + + Artsounk + BPG UTF8 M + Kinnari + Norasi + Frank Ruehl + Dror + JG LaoTimes + Saysettha Unicode + Pigiarniq + B Davat + B Compset + Kacst-Qr + Urdu Nastaliq Unicode + Raghindi + Mukti Narrow + malayalam + Sampige + padmaa + Hapax Berbère + MS Gothic + UmePlus P Gothic + SimSun + PMingLiu + WenQuanYi Zen Hei + WenQuanYi Bitmap Song + AR PL ShanHeiSun Uni + AR PL New Sung + ZYSong18030 + HanyiSong + MgOpen Canonica + Sazanami Mincho + IPAMonaMincho + IPAMincho + Kochi Mincho + AR PL SungtiL GB + AR PL Mingti2L Big5 + AR PL Zenkai Uni + MS 明朝 + ZYSong18030 + UnBatang + Baekmuk Batang + KacstQura + Frank Ruehl CLM + Lohit Bengali + Lohit Gujarati + Lohit Hindi + Lohit Marathi + Lohit Maithili + Lohit Kashmiri + Lohit Konkani + Lohit Nepali + Lohit Sindhi + Lohit Punjabi + Lohit Tamil + Meera + Lohit Malayalam + Lohit Kannada + Lohit Telugu + Lohit Oriya + LKLUG + + + + sans-serif + + Nachlieli + Lucida Sans Unicode + Yudit Unicode + Kerkis + ArmNet Helvetica + Artsounk + BPG UTF8 M + Waree + Loma + Garuda + Umpush + Saysettha Unicode + JG Lao Old Arial + GF Zemen Unicode + Pigiarniq + B Davat + B Compset + Kacst-Qr + Urdu Nastaliq Unicode + Raghindi + Mukti Narrow + malayalam + Sampige + padmaa + Hapax Berbère + MS Gothic + UmePlus P Gothic + + SimSun + PMingLiu + WenQuanYi Zen Hei + WenQuanYi Bitmap Song + AR PL ShanHeiSun Uni + AR PL New Sung + MgOpen Modata + VL Gothic + IPAMonaGothic + IPAGothic + Sazanami Gothic + Kochi Gothic + AR PL KaitiM GB + AR PL KaitiM Big5 + AR PL ShanHeiSun Uni + AR PL SungtiL GB + AR PL Mingti2L Big5 + MS ゴシック + ZYSong18030 + TSCu_Paranar + UnDotum + Baekmuk Dotum + Baekmuk Gulim + KacstQura + Lohit Bengali + Lohit Gujarati + Lohit Hindi + Lohit Marathi + Lohit Maithili + Lohit Kashmiri + Lohit Konkani + Lohit Nepali + Lohit Sindhi + Lohit Punjabi + Lohit Tamil + Meera + Lohit Malayalam + Lohit Kannada + Lohit Telugu + Lohit Oriya + LKLUG + + + + monospace + + Miriam Mono + VL Gothic + IPAMonaGothic + IPAGothic + Sazanami Gothic + Kochi Gothic + AR PL KaitiM GB + MS Gothic + UmePlus Gothic + NSimSun + MingLiu + AR PL ShanHeiSun Uni + AR PL New Sung Mono + HanyiSong + AR PL SungtiL GB + AR PL Mingti2L Big5 + ZYSong18030 + UnBatang + UnDotum + Baekmuk Batang + Baekmuk Dotum + Baekmuk Gulim + TlwgTypo + TlwgTypist + TlwgTypewriter + TlwgMono + Hasida + Mitra Mono + GF Zemen Unicode + Hapax Berbère + Lohit Bengali + Lohit Gujarati + Lohit Hindi + Lohit Marathi + Lohit Maithili + Lohit Kashmiri + Lohit Konkani + Lohit Nepali + Lohit Sindhi + Lohit Punjabi + Lohit Tamil + Meera + Lohit Malayalam + Lohit Kannada + Lohit Telugu + Lohit Oriya + LKLUG + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/69-unifont.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/69-unifont.conf new file mode 100644 index 0000000000..177dec5d4e --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/69-unifont.conf @@ -0,0 +1,28 @@ + + + + + serif + + FreeSerif + Code2000 + Code2001 + + + + sans-serif + + FreeSans + Arial Unicode MS + Arial Unicode + Code2000 + Code2001 + + + + monospace + + FreeMono + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/70-no-bitmaps.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/70-no-bitmaps.conf new file mode 100644 index 0000000000..6b506e82a0 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/70-no-bitmaps.conf @@ -0,0 +1,12 @@ + + + + + + + + false + + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/70-yes-bitmaps.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/70-yes-bitmaps.conf new file mode 100644 index 0000000000..c153aebdca --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/70-yes-bitmaps.conf @@ -0,0 +1,12 @@ + + + + + + + + false + + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/80-delicious.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/80-delicious.conf new file mode 100644 index 0000000000..728f50caee --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/80-delicious.conf @@ -0,0 +1,19 @@ + + + + + + + + + Delicious + + + Heavy + + + heavy + + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.avail/90-synthetic.conf b/tools/windows_packaging/mingw64/fonts/conf.avail/90-synthetic.conf new file mode 100644 index 0000000000..b8d1e85e1f --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.avail/90-synthetic.conf @@ -0,0 +1,64 @@ + + + + + + + + + roman + + + + roman + + + + + matrix + 10.2 + 01 + + + + + + oblique + + + + false + + + + + + + + + medium + + + + medium + + + + true + + + + bold + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.d/20-fix-globaladvance.conf b/tools/windows_packaging/mingw64/fonts/conf.d/20-fix-globaladvance.conf new file mode 100644 index 0000000000..2a9c063257 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.d/20-fix-globaladvance.conf @@ -0,0 +1,28 @@ + + + + + + GulimChe + false + + + + DotumChe + false + + + + BatangChe + false + + + + GungsuhChe + false + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.d/20-unhint-small-vera.conf b/tools/windows_packaging/mingw64/fonts/conf.d/20-unhint-small-vera.conf new file mode 100644 index 0000000000..c4ebee9d44 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.d/20-unhint-small-vera.conf @@ -0,0 +1,48 @@ + + + + + + + + Bitstream Vera Sans + + + 7.5 + + + false + + + + + + Bitstream Vera Serif + + + 7.5 + + + false + + + + + + Bitstream Vera Sans Mono + + + 7.5 + + + false + + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.d/30-metric-aliases.conf b/tools/windows_packaging/mingw64/fonts/conf.d/30-metric-aliases.conf new file mode 100644 index 0000000000..702a495ea6 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.d/30-metric-aliases.conf @@ -0,0 +1,211 @@ + + + + + + + + + + + Nimbus Sans L + + Helvetica + + + + + Nimbus Roman No9 L + + Times + + + + + Nimbus Mono L + + Courier + + + + + + + Liberation Sans + Albany + Albany AMT + + Arial + + + + + Liberation Serif + Thorndale + Thorndale AMT + + Times New Roman + + + + + Liberation Mono + Cumberland + Cumberland AMT + + Courier New + + + + + + + + + + + Helvetica + + Arial + + + + + Times + + Times New Roman + + + + + Courier + + Courier New + + + + + + + Arial + + Helvetica + + + + + Times New Roman + + Times + + + + + Courier New + + Courier + + + + + + + + + + + Helvetica + + Nimbus Sans L + + + + + Times + + Nimbus Roman No9 L + + + + + Courier + + Nimbus Mono L + + + + + + + Arial + + Liberation Sans + Albany + Albany AMT + + + + + Times New Roman + + Liberation Serif + Thorndale + Thorndale AMT + + + + + Courier New + + Liberation Mono + Cumberland + Cumberland AMT + + + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.d/30-urw-aliases.conf b/tools/windows_packaging/mingw64/fonts/conf.d/30-urw-aliases.conf new file mode 100644 index 0000000000..9d5920306a --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.d/30-urw-aliases.conf @@ -0,0 +1,40 @@ + + + + + + Avant Garde + URW Gothic L + + + Bookman + URW Bookman L + + + New Century Schoolbook + Century Schoolbook L + + + Palatino + URW Palladio L + + + Zapf Chancery + URW Chancery L + + + Zapf Dingbats + Dingbats + + + + Symbol + + + Standard Symbols L + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.d/40-nonlatin.conf b/tools/windows_packaging/mingw64/fonts/conf.d/40-nonlatin.conf new file mode 100644 index 0000000000..a875db08c3 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.d/40-nonlatin.conf @@ -0,0 +1,90 @@ + + + + + + + + Nazli + Lotoos + Mitra + Ferdosi + Badr + Zar + Titr + Jadid + Kochi Mincho + AR PL SungtiL GB + AR PL Mingti2L Big5 + MS 明朝 + UnBatang + Baekmuk Batang + MgOpen Canonica + Sazanami Mincho + AR PL ZenKai Uni + ZYSong18030 + FreeSerif + serif + + + + Arshia + Elham + Farnaz + Nasim + Sina + Roya + Koodak + Terafik + Kochi Gothic + AR PL KaitiM GB + AR PL KaitiM Big5 + MS ゴシック + UnDotum + Baekmuk Dotum + SimSun + MgOpen Modata + Sazanami Gothic + AR PL ShanHeiSun Uni + ZYSong18030 + FreeSans + sans-serif + + + + NSimSun + ZYSong18030 + FreeMono + monospace + + + + + Homa + Kamran + Fantezi + Tabassom + fantasy + + + + + IranNastaliq + Nafees Nastaleeq + cursive + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.d/45-latin.conf b/tools/windows_packaging/mingw64/fonts/conf.d/45-latin.conf new file mode 100644 index 0000000000..7e41264688 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.d/45-latin.conf @@ -0,0 +1,77 @@ + + + + + + + + Bitstream Vera Serif + DejaVu Serif + Liberation Serif + Times New Roman + Times + Nimbus Roman No9 L + Luxi Serif + Thorndale AMT + Thorndale + serif + + + + Bitstream Vera Sans + DejaVu Sans + Liberation Sans + Arial + Helvetica + Verdana + Albany AMT + Albany + Nimbus Sans L + Luxi Sans + sans-serif + + + + Bitstream Vera Sans Mono + DejaVu Sans Mono + Liberation Mono + Inconsolata + Courier New + Courier + Andale Mono + Luxi Mono + Cumberland AMT + Cumberland + Nimbus Mono L + monospace + + + + Impact + Copperplate Gothic Std + Cooper Std + Bauhaus Std + fantasy + + + + ITC Zapf Chancery Std + Zapfino + Comic Sans MS + cursive + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.d/49-sansserif.conf b/tools/windows_packaging/mingw64/fonts/conf.d/49-sansserif.conf new file mode 100644 index 0000000000..c6209a7d31 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.d/49-sansserif.conf @@ -0,0 +1,21 @@ + + + + + + + sans-serif + + + serif + + + monospace + + + sans-serif + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.d/50-user.conf b/tools/windows_packaging/mingw64/fonts/conf.d/50-user.conf new file mode 100644 index 0000000000..3f8901296b --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.d/50-user.conf @@ -0,0 +1,7 @@ + + + + + ~/.fonts.conf.d + ~/.fonts.conf + diff --git a/tools/windows_packaging/mingw64/fonts/conf.d/51-local.conf b/tools/windows_packaging/mingw64/fonts/conf.d/51-local.conf new file mode 100644 index 0000000000..ca9fbe1959 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.d/51-local.conf @@ -0,0 +1,6 @@ + + + + + local.conf + diff --git a/tools/windows_packaging/mingw64/fonts/conf.d/60-latin.conf b/tools/windows_packaging/mingw64/fonts/conf.d/60-latin.conf new file mode 100644 index 0000000000..2107e31e4b --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.d/60-latin.conf @@ -0,0 +1,70 @@ + + + + + serif + + Bitstream Vera Serif + DejaVu Serif + Times New Roman + Thorndale AMT + Luxi Serif + Nimbus Roman No9 L + Times + + + + sans-serif + + Bitstream Vera Sans + DejaVu Sans + Verdana + Arial + Albany AMT + Luxi Sans + Nimbus Sans L + Helvetica + Lucida Sans Unicode + BPG Glaho International + Tahoma + + + + monospace + + Bitstream Vera Sans Mono + DejaVu Sans Mono + Inconsolata + Andale Mono + Courier New + Cumberland AMT + Luxi Mono + Nimbus Mono L + Courier + + + + + fantasy + + Impact + Copperplate Gothic Std + Cooper Std + Bauhaus Std + + + + + cursive + + ITC Zapf Chancery Std + Zapfino + Comic Sans MS + + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.d/65-fonts-persian.conf b/tools/windows_packaging/mingw64/fonts/conf.d/65-fonts-persian.conf new file mode 100644 index 0000000000..0033675a49 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.d/65-fonts-persian.conf @@ -0,0 +1,419 @@ + + + + + + + + + + + Nesf + Nesf2 + + + Nesf2 + Persian_sansserif_default + + + + + + Nazanin + Nazli + + + Lotus + Lotoos + + + Yaqut + Yaghoot + + + Yaghut + Yaghoot + + + Traffic + Terafik + + + Ferdowsi + Ferdosi + + + Fantezy + Fantezi + + + + + + + + Jadid + Persian_title + + + Titr + Persian_title + + + + + Kamran + + Persian_fantasy + Homa + + + + Homa + + Persian_fantasy + Kamran + + + + Fantezi + Persian_fantasy + + + Tabassom + Persian_fantasy + + + + + Arshia + Persian_square + + + Nasim + Persian_square + + + Elham + + Persian_square + Farnaz + + + + Farnaz + + Persian_square + Elham + + + + Sina + Persian_square + + + + + + + Persian_title + + Titr + Jadid + Persian_serif + + + + + + Persian_fantasy + + Homa + Kamran + Fantezi + Tabassom + Persian_square + + + + + + Persian_square + + Arshia + Elham + Farnaz + Nasim + Sina + Persian_serif + + + + + + + + Elham + + + farsiweb + + + + + + Homa + + + farsiweb + + + + + + Koodak + + + farsiweb + + + + + + Nazli + + + farsiweb + + + + + + Roya + + + farsiweb + + + + + + Terafik + + + farsiweb + + + + + + Titr + + + farsiweb + + + + + + + + + + TURNED-OFF + + + farsiweb + + + + roman + + + + roman + + + + + matrix + 1-0.2 + 01 + + + + + + oblique + + + + + + + + + farsiweb + + + false + + + false + + + false + + + + + + + + + serif + + Nazli + Lotoos + Mitra + Ferdosi + Badr + Zar + + + + + + sans-serif + + Roya + Koodak + Terafik + + + + + + monospace + + + Terafik + + + + + + fantasy + + Homa + Kamran + Fantezi + Tabassom + + + + + + cursive + + IranNastaliq + Nafees Nastaleeq + + + + + + + + + serif + + + 200 + + + 24 + + + Titr + + + + + + + sans-serif + + + 200 + + + 24 + + + Titr + + + + + + + Persian_sansserif_default + + + 200 + + + 24 + + + Titr + + + + + + + + + Persian_sansserif_default + + + Roya + + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.d/65-nonlatin.conf b/tools/windows_packaging/mingw64/fonts/conf.d/65-nonlatin.conf new file mode 100644 index 0000000000..53ac064b0a --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.d/65-nonlatin.conf @@ -0,0 +1,195 @@ + + + + + serif + + Artsounk + BPG UTF8 M + Kinnari + Norasi + Frank Ruehl + Dror + JG LaoTimes + Saysettha Unicode + Pigiarniq + B Davat + B Compset + Kacst-Qr + Urdu Nastaliq Unicode + Raghindi + Mukti Narrow + malayalam + Sampige + padmaa + Hapax Berbère + MS Gothic + UmePlus P Gothic + SimSun + PMingLiu + WenQuanYi Zen Hei + WenQuanYi Bitmap Song + AR PL ShanHeiSun Uni + AR PL New Sung + ZYSong18030 + HanyiSong + MgOpen Canonica + Sazanami Mincho + IPAMonaMincho + IPAMincho + Kochi Mincho + AR PL SungtiL GB + AR PL Mingti2L Big5 + AR PL Zenkai Uni + MS 明朝 + ZYSong18030 + UnBatang + Baekmuk Batang + KacstQura + Frank Ruehl CLM + Lohit Bengali + Lohit Gujarati + Lohit Hindi + Lohit Marathi + Lohit Maithili + Lohit Kashmiri + Lohit Konkani + Lohit Nepali + Lohit Sindhi + Lohit Punjabi + Lohit Tamil + Meera + Lohit Malayalam + Lohit Kannada + Lohit Telugu + Lohit Oriya + LKLUG + + + + sans-serif + + Nachlieli + Lucida Sans Unicode + Yudit Unicode + Kerkis + ArmNet Helvetica + Artsounk + BPG UTF8 M + Waree + Loma + Garuda + Umpush + Saysettha Unicode + JG Lao Old Arial + GF Zemen Unicode + Pigiarniq + B Davat + B Compset + Kacst-Qr + Urdu Nastaliq Unicode + Raghindi + Mukti Narrow + malayalam + Sampige + padmaa + Hapax Berbère + MS Gothic + UmePlus P Gothic + + SimSun + PMingLiu + WenQuanYi Zen Hei + WenQuanYi Bitmap Song + AR PL ShanHeiSun Uni + AR PL New Sung + MgOpen Modata + VL Gothic + IPAMonaGothic + IPAGothic + Sazanami Gothic + Kochi Gothic + AR PL KaitiM GB + AR PL KaitiM Big5 + AR PL ShanHeiSun Uni + AR PL SungtiL GB + AR PL Mingti2L Big5 + MS ゴシック + ZYSong18030 + TSCu_Paranar + UnDotum + Baekmuk Dotum + Baekmuk Gulim + KacstQura + Lohit Bengali + Lohit Gujarati + Lohit Hindi + Lohit Marathi + Lohit Maithili + Lohit Kashmiri + Lohit Konkani + Lohit Nepali + Lohit Sindhi + Lohit Punjabi + Lohit Tamil + Meera + Lohit Malayalam + Lohit Kannada + Lohit Telugu + Lohit Oriya + LKLUG + + + + monospace + + Miriam Mono + VL Gothic + IPAMonaGothic + IPAGothic + Sazanami Gothic + Kochi Gothic + AR PL KaitiM GB + MS Gothic + UmePlus Gothic + NSimSun + MingLiu + AR PL ShanHeiSun Uni + AR PL New Sung Mono + HanyiSong + AR PL SungtiL GB + AR PL Mingti2L Big5 + ZYSong18030 + UnBatang + UnDotum + Baekmuk Batang + Baekmuk Dotum + Baekmuk Gulim + TlwgTypo + TlwgTypist + TlwgTypewriter + TlwgMono + Hasida + Mitra Mono + GF Zemen Unicode + Hapax Berbère + Lohit Bengali + Lohit Gujarati + Lohit Hindi + Lohit Marathi + Lohit Maithili + Lohit Kashmiri + Lohit Konkani + Lohit Nepali + Lohit Sindhi + Lohit Punjabi + Lohit Tamil + Meera + Lohit Malayalam + Lohit Kannada + Lohit Telugu + Lohit Oriya + LKLUG + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.d/69-unifont.conf b/tools/windows_packaging/mingw64/fonts/conf.d/69-unifont.conf new file mode 100644 index 0000000000..177dec5d4e --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.d/69-unifont.conf @@ -0,0 +1,28 @@ + + + + + serif + + FreeSerif + Code2000 + Code2001 + + + + sans-serif + + FreeSans + Arial Unicode MS + Arial Unicode + Code2000 + Code2001 + + + + monospace + + FreeMono + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.d/80-delicious.conf b/tools/windows_packaging/mingw64/fonts/conf.d/80-delicious.conf new file mode 100644 index 0000000000..728f50caee --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.d/80-delicious.conf @@ -0,0 +1,19 @@ + + + + + + + + + Delicious + + + Heavy + + + heavy + + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.d/90-synthetic.conf b/tools/windows_packaging/mingw64/fonts/conf.d/90-synthetic.conf new file mode 100644 index 0000000000..b8d1e85e1f --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.d/90-synthetic.conf @@ -0,0 +1,64 @@ + + + + + + + + + roman + + + + roman + + + + + matrix + 10.2 + 01 + + + + + + oblique + + + + false + + + + + + + + + medium + + + + medium + + + + true + + + + bold + + + diff --git a/tools/windows_packaging/mingw64/fonts/conf.d/README b/tools/windows_packaging/mingw64/fonts/conf.d/README new file mode 100644 index 0000000000..c2fb52c3b4 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/conf.d/README @@ -0,0 +1,23 @@ +conf.d/README + +Each file in this directory is a fontconfig configuration file. Fontconfig +scans this directory, loading all files of the form [0-9][0-9]*.conf. +These files are normally installed in ../conf.avail and then symlinked here, +allowing them to be easily installed and then enabled/disabled by adjusting +the symlinks. + +The files are loaded in numeric order, the structure of the configuration +has led to the following conventions in usage: + + Files begining with: Contain: + + 00 through 09 Font directories + 10 through 19 system rendering defaults (AA, etc) + 20 through 29 font rendering options + 30 through 39 family substitution + 40 through 49 generic identification, map family->generic + 50 through 59 alternate config file loading + 60 through 69 generic aliases, map generic->family + 70 through 79 select font (adjust which fonts are available) + 80 through 89 match target="scan" (modify scanned patterns) + 90 through 99 font synthesis diff --git a/tools/windows_packaging/mingw64/fonts/fonts.conf b/tools/windows_packaging/mingw64/fonts/fonts.conf new file mode 100644 index 0000000000..6f5fe4b0e3 --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/fonts.conf @@ -0,0 +1,151 @@ + + + + + + + + + + WINDOWSFONTDIR + + ~/.fonts + + + + + mono + + + monospace + + + + + + + sans serif + + + sans-serif + + + + + + + sans + + + sans-serif + + + + + conf.d + + + + WINDOWSTEMPDIR_FONTCONFIG_CACHE + ~/.fontconfig + + + + + 0x0020 + 0x00A0 + 0x00AD + 0x034F + 0x0600 + 0x0601 + 0x0602 + 0x0603 + 0x06DD + 0x070F + 0x115F + 0x1160 + 0x1680 + 0x17B4 + 0x17B5 + 0x180E + 0x2000 + 0x2001 + 0x2002 + 0x2003 + 0x2004 + 0x2005 + 0x2006 + 0x2007 + 0x2008 + 0x2009 + 0x200A + 0x200B + 0x200C + 0x200D + 0x200E + 0x200F + 0x2028 + 0x2029 + 0x202A + 0x202B + 0x202C + 0x202D + 0x202E + 0x202F + 0x205F + 0x2060 + 0x2061 + 0x2062 + 0x2063 + 0x206A + 0x206B + 0x206C + 0x206D + 0x206E + 0x206F + 0x2800 + 0x3000 + 0x3164 + 0xFEFF + 0xFFA0 + 0xFFF9 + 0xFFFA + 0xFFFB + + + + 30 + + + + diff --git a/tools/windows_packaging/mingw64/fonts/fonts.dtd b/tools/windows_packaging/mingw64/fonts/fonts.dtd new file mode 100644 index 0000000000..cbdfdab3fb --- /dev/null +++ b/tools/windows_packaging/mingw64/fonts/fonts.dtd @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/windows_packaging/mingw64/gtk-2.0/gtk.immodules b/tools/windows_packaging/mingw64/gtk-2.0/gtk.immodules new file mode 100644 index 0000000000..3eaf413f9d --- /dev/null +++ b/tools/windows_packaging/mingw64/gtk-2.0/gtk.immodules @@ -0,0 +1,39 @@ +# GTK+ Input Method Modules file +# Automatically generated file, do not edit +# Created by c:/Users/VKamyshniy/gtk/source/gtk+-2.24.18/gtk/.libs/gtk-query-immodules-2.0.exe from gtk+-2.24.18 +# +# ModulesPath = c:\Users\VKamyshniy\.gtk-2.0\2.10.0\i686-pc-mingw32\immodules;c:\Users\VKamyshniy\.gtk-2.0\2.10.0\immodules;c:\Users\VKamyshniy\.gtk-2.0\i686-pc-mingw32\immodules;c:\Users\VKamyshniy\.gtk-2.0\immodules;c:/Users/VKamyshniy/gtk/inst/lib\gtk-2.0\2.10.0\i686-pc-mingw32\immodules;c:/Users/VKamyshniy/gtk/inst/lib\gtk-2.0\2.10.0\immodules;c:/Users/VKamyshniy/gtk/inst/lib\gtk-2.0\i686-pc-mingw32\immodules;c:/Users/VKamyshniy/gtk/inst/lib\gtk-2.0\immodules +# +"c:/Users/VKamyshniy/gtk/inst/lib/gtk-2.0/2.10.0/immodules/im-am-et.dll" +"am_et" "Amharic (EZ+)" "gtk20" "/Users/VKamyshniy/gtk/inst/share/locale" "am" + +"c:/Users/VKamyshniy/gtk/inst/lib/gtk-2.0/2.10.0/immodules/im-cedilla.dll" +"cedilla" "Cedilla" "gtk20" "/Users/VKamyshniy/gtk/inst/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa" + +"c:/Users/VKamyshniy/gtk/inst/lib/gtk-2.0/2.10.0/immodules/im-cyrillic-translit.dll" +"cyrillic_translit" "Cyrillic (Transliterated)" "gtk20" "/Users/VKamyshniy/gtk/inst/share/locale" "" + +"c:/Users/VKamyshniy/gtk/inst/lib/gtk-2.0/2.10.0/immodules/im-ime.dll" +"ime" "Windows IME" "gtk+" "" "ja:ko:zh" + +"c:/Users/VKamyshniy/gtk/inst/lib/gtk-2.0/2.10.0/immodules/im-inuktitut.dll" +"inuktitut" "Inuktitut (Transliterated)" "gtk20" "/Users/VKamyshniy/gtk/inst/share/locale" "iu" + +"c:/Users/VKamyshniy/gtk/inst/lib/gtk-2.0/2.10.0/immodules/im-ipa.dll" +"ipa" "IPA" "gtk20" "/Users/VKamyshniy/gtk/inst/share/locale" "" + +"c:/Users/VKamyshniy/gtk/inst/lib/gtk-2.0/2.10.0/immodules/im-multipress.dll" +"multipress" "Multipress" "gtk20" "" "" + +"c:/Users/VKamyshniy/gtk/inst/lib/gtk-2.0/2.10.0/immodules/im-thai.dll" +"thai" "Thai-Lao" "gtk20" "/Users/VKamyshniy/gtk/inst/share/locale" "lo:th" + +"c:/Users/VKamyshniy/gtk/inst/lib/gtk-2.0/2.10.0/immodules/im-ti-er.dll" +"ti_er" "Tigrigna-Eritrean (EZ+)" "gtk20" "/Users/VKamyshniy/gtk/inst/share/locale" "ti" + +"c:/Users/VKamyshniy/gtk/inst/lib/gtk-2.0/2.10.0/immodules/im-ti-et.dll" +"ti_et" "Tigrigna-Ethiopian (EZ+)" "gtk20" "/Users/VKamyshniy/gtk/inst/share/locale" "ti" + +"c:/Users/VKamyshniy/gtk/inst/lib/gtk-2.0/2.10.0/immodules/im-viqr.dll" +"viqr" "Vietnamese (VIQR)" "gtk20" "/Users/VKamyshniy/gtk/inst/share/locale" "vi" + diff --git a/tools/windows_packaging/mingw64/gtk-2.0/im-multipress.conf b/tools/windows_packaging/mingw64/gtk-2.0/im-multipress.conf new file mode 100644 index 0000000000..d6c8129d90 --- /dev/null +++ b/tools/windows_packaging/mingw64/gtk-2.0/im-multipress.conf @@ -0,0 +1,22 @@ +# Example configuration file for the GTK+ Multipress Input Method +# Authored by Openismus GmbH, 2009. +# +# This file follows the GKeyFile format. On the left of the equal sign goes +# the key that you press repeatedly to iterate through the text items listed +# on the right-hand side. The list items are separated by semicolons ";" and +# consist of one or more characters each. The backslash "\" is used to escape +# characters; for instance "\;" for a literal semicolon. +# +# The example configuration below imitates the behavior of a standard mobile +# phone by a major manufacturer, with German language setting. +[keys] +KP_1 = .;,;?;!;';";1;-;(;);@;/;:;_ +KP_2 = a;b;c;2;ä;à;á;ã;â;å;æ;ç +KP_3 = d;e;f;3;è;é;ë;ê;ð +KP_4 = g;h;i;4;ì;í;î;ï +KP_5 = j;k;l;5;£ +KP_6 = m;n;o;6;ö;ò;ó;ô;õ;ø;ñ +KP_7 = p;q;r;s;7;ß;$ +KP_8 = t;u;v;8;ü;ù;ú;û +KP_9 = w;x;y;z;9;ý;þ +KP_0 = \s;0 diff --git a/tools/windows_packaging/mingw64/pango/pango.modules b/tools/windows_packaging/mingw64/pango/pango.modules new file mode 100644 index 0000000000..192022961f --- /dev/null +++ b/tools/windows_packaging/mingw64/pango/pango.modules @@ -0,0 +1,35 @@ +# Pango Modules file +# Automatically generated file, do not edit +# +# ModulesPath = c:/Users/VKamyshniy/gtk/inst/lib/pango\1.6.0\modules +# +"./lib/pango/1.6.0/modules/pango-arabic-fc.dll" ArabicScriptEngineFc PangoEngineShape PangoRenderFc arabic:* nko:* +"./lib/pango/1.6.0/modules/pango-arabic-lang.dll" ArabicScriptEngineLang PangoEngineLang PangoRenderNone arabic:* +"./lib/pango/1.6.0/modules/pango-basic-fc.dll" BasicScriptEngineFc PangoEngineShape PangoRenderFc latin:* cyrillic:* greek:* armenian:* georgian:* runic:* ogham:* bopomofo:* cherokee:* coptic:* deseret:* ethiopic:* gothic:* han:* hiragana:* katakana:* old-italic:* canadian-aboriginal:* yi:* braille:* cypriot:* limbu:* osmanya:* shavian:* linear-b:* ugaritic:* glagolitic:* cuneiform:* phoenician:* common: +"./lib/pango/1.6.0/modules/pango-basic-win32.dll" BasicScriptEngineWin32 PangoEngineShape PangoRenderWin32 common: +"./lib/pango/1.6.0/modules/pango-hangul-fc.dll" HangulScriptEngineFc PangoEngineShape PangoRenderFc hangul:* +"./lib/pango/1.6.0/modules/pango-hebrew-fc.dll" HebrewScriptEngineFc PangoEngineShape PangoRenderFc hebrew:* +"./lib/pango/1.6.0/modules/pango-indic-fc.dll" devaScriptEngineFc PangoEngineShape PangoRenderFc devanagari:* +"./lib/pango/1.6.0/modules/pango-indic-fc.dll" bengScriptEngineFc PangoEngineShape PangoRenderFc bengali:* +"./lib/pango/1.6.0/modules/pango-indic-fc.dll" guruScriptEngineFc PangoEngineShape PangoRenderFc gurmukhi:* +"./lib/pango/1.6.0/modules/pango-indic-fc.dll" gujrScriptEngineFc PangoEngineShape PangoRenderFc gujarati:* +"./lib/pango/1.6.0/modules/pango-indic-fc.dll" oryaScriptEngineFc PangoEngineShape PangoRenderFc oriya:* +"./lib/pango/1.6.0/modules/pango-indic-fc.dll" tamlScriptEngineFc PangoEngineShape PangoRenderFc tamil:* +"./lib/pango/1.6.0/modules/pango-indic-fc.dll" teluScriptEngineFc PangoEngineShape PangoRenderFc telugu:* +"./lib/pango/1.6.0/modules/pango-indic-fc.dll" kndaScriptEngineFc PangoEngineShape PangoRenderFc kannada:* +"./lib/pango/1.6.0/modules/pango-indic-fc.dll" mlymScriptEngineFc PangoEngineShape PangoRenderFc malayalam:* +"./lib/pango/1.6.0/modules/pango-indic-fc.dll" sinhScriptEngineFc PangoEngineShape PangoRenderFc sinhala:* +"./lib/pango/1.6.0/modules/pango-indic-lang.dll" devaIndicScriptEngineLang PangoEngineLang PangoRenderNone devanagari:* +"./lib/pango/1.6.0/modules/pango-indic-lang.dll" bengIndicScriptEngineLang PangoEngineLang PangoRenderNone bengali:* +"./lib/pango/1.6.0/modules/pango-indic-lang.dll" guruIndicScriptEngineLang PangoEngineLang PangoRenderNone gurmukhi:* +"./lib/pango/1.6.0/modules/pango-indic-lang.dll" gujrIndicScriptEngineLang PangoEngineLang PangoRenderNone gujarati:* +"./lib/pango/1.6.0/modules/pango-indic-lang.dll" oryaIndicScriptEngineLang PangoEngineLang PangoRenderNone oriya:* +"./lib/pango/1.6.0/modules/pango-indic-lang.dll" tamlIndicScriptEngineLang PangoEngineLang PangoRenderNone tamil:* +"./lib/pango/1.6.0/modules/pango-indic-lang.dll" teluIndicScriptEngineLang PangoEngineLang PangoRenderNone telugu:* +"./lib/pango/1.6.0/modules/pango-indic-lang.dll" kndaIndicScriptEngineLang PangoEngineLang PangoRenderNone kannada:* +"./lib/pango/1.6.0/modules/pango-indic-lang.dll" mlymIndicScriptEngineLang PangoEngineLang PangoRenderNone malayalam:* +"./lib/pango/1.6.0/modules/pango-indic-lang.dll" sinhIndicScriptEngineLang PangoEngineLang PangoRenderNone sinhala:* +"./lib/pango/1.6.0/modules/pango-khmer-fc.dll" KhmerScriptEngineFc PangoEngineShape PangoRenderFc khmer:* +"./lib/pango/1.6.0/modules/pango-syriac-fc.dll" SyriacScriptEngineFc PangoEngineShape PangoRenderFc syriac:* +"./lib/pango/1.6.0/modules/pango-thai-fc.dll" ThaiScriptEngineFc PangoEngineShape PangoRenderFc thai:* lao:* +"./lib/pango/1.6.0/modules/pango-tibetan-fc.dll" TibetanScriptEngineFc PangoEngineShape PangoRenderFc tibetan:* diff --git a/tools/windows_packaging/package.sh b/tools/windows_packaging/package.sh index 92f55e8906..dd1ec88119 100755 --- a/tools/windows_packaging/package.sh +++ b/tools/windows_packaging/package.sh @@ -54,6 +54,8 @@ mkdir -p $PACKAGE_DIR/lib/pango/1.6.0/modules cp -r $MINGW_ROOT/lib/pango/1.6.0/modules/*.dll $PACKAGE_DIR/lib/pango/1.6.0/modules cp $TOOLS_DIR/pango.modules $PACKAGE_DIR/etc/pango +cp $TOOLS_DIR/README $PACKAGE_DIR + DLLS=' jack-0.dll jackserver-0.dll @@ -144,7 +146,7 @@ libs/timecode libs/audiographer ' -if test x$DEBUG != x ; then +if [ x$DEBUG = xT ]; then PACKAGE_SRC_DIR=$PACKAGE_DIR/src echo "Copying source files to $PACKAGE_SRC_DIR ..." @@ -158,20 +160,21 @@ if test x$DEBUG != x ; then echo "Copying JACK utility programs to $PACKAGE_DIR ..." cp $MINGW_ROOT/bin/jack_*.exe $PACKAGE_DIR - echo "Copying any debug files to $PACKAGE_DIR ..." - cp $MINGW_ROOT/bin/*.debug $PACKAGE_DIR + #echo "Copying any debug files to $PACKAGE_DIR ..." + #cp $MINGW_ROOT/bin/*.debug $PACKAGE_DIR - echo "Copying gdb to $PACKAGE_DIR ..." + echo "Copying gdb and config files to $PACKAGE_DIR ..." cp $MINGW_ROOT/bin/gdb.exe $PACKAGE_DIR - - echo "Copying .gdbinit to $PACKAGE_DIR ..." cp $TOOLS_DIR/gdbinit $PACKAGE_DIR/.gdbinit + cp $TOOLS_DIR/gdbinit_home $PACKAGE_DIR/gdbinit_home + cp $TOOLS_DIR/gdb.bat $PACKAGE_DIR/gdb.bat + cp $TOOLS_DIR/gdb-ardour.bat $PACKAGE_DIR/gdb-ardour.bat echo "Copying Gtk demo to $PACKAGE_DIR ..." cp $MINGW_ROOT/bin/gtk-demo.exe $PACKAGE_DIR else echo "Optimized build Stripping executable ..." - $STRIP $PACKAGE_DIR/ardour-3.0.exe + find $PACKAGE_DIR -type f -name "*.exe*" | xargs $STRIP echo "Stripping libraries ..." find $PACKAGE_DIR -type f -name "*.dll*" | xargs $STRIP fi diff --git a/tools/windows_packaging/package_win32.sh b/tools/windows_packaging/package_win32.sh new file mode 100755 index 0000000000..5ef6c17cf9 --- /dev/null +++ b/tools/windows_packaging/package_win32.sh @@ -0,0 +1,242 @@ +#!/bin/bash +function copydll () { + if [ -f $GTK/bin/$1 ] ; then + echo "cp $GTK/bin/$1 $2" + cp $GTK/bin/$1 $2 || return 1 + return 0 + fi + + if [ -f $GTK/lib/$1 ] ; then + echo "cp $GTK/lib/$1 $2" + cp $GTK/lib/$1 $2 || return 1 + return 0 + fi + + if [ -f $A3/bin/$1 ] ; then + echo "cp $A3/bin/$1 $2" + cp $A3/bin/$1 $2 || return 1 + return 0 + fi + + if [ -f $A3/lib/$1 ] ; then + echo "$A3/lib/$1 $2" + cp $A3/lib/$1 $2 || return 1 + return 0 + fi + if which $1 ; then + echo "cp `which $1` $2" + cp `which $1` $2 || return 1 + return 0 + fi + + echo "there is no $1" + return 1 +} + +# libcrypto-10.dll -- OOPS +# libgnomecanvasmm-2.6-1.dll -- OOPS +# iconv.dll == libiconv-2.dll +# libpng15-15.dll == libpng16-16.dll +# liblo-7.dll == liblo.dll + +ABANDONEDDLLS=' +jack-0.dll +jackserver-0.dll +libbz2-1.dll +libcppunit-1-12-1.dll +libexpat-1.dll +libgnurx-0.dll +libharfbuzz-0.dll +libFLAC-8.dll +libvorbis-0.dll +libvorbisenc-2.dll +libidn-11.dll +libssh2-1.dll +libssl-10.dll +pthreadGC2.dll +' + +DLLS=' +libiconv-2.dll +libpng16-16.dll +liblo.dll +libart_lgpl_2-2.dll +libatk-1.0-0.dll +libatkmm-1.6-1.dll +libcairo-2.dll +libcairo-gobject-2.dll +libcairomm-1.0-1.dll +libcairo-script-interpreter-2.dll +libcurl-4.dll +libfftw3-3.dll +libfftw3f-3.dll +libfontconfig-1.dll +libfreetype-6.dll +libgailutil-18.dll +libgdkmm-2.4-1.dll +libgdk_pixbuf-2.0-0.dll +libgdk-win32-2.0-0.dll +libgio-2.0-0.dll +libgiomm-2.4-1.dll +libglib-2.0-0.dll +libglibmm-2.4-1.dll +libglibmm_generate_extra_defs-2.4-1.dll +libgmodule-2.0-0.dll +libgnomecanvas-2-0.dll +libgobject-2.0-0.dll +libgthread-2.0-0.dll +libgtkmm-2.4-1.dll +libgtk-win32-2.0-0.dll +libiconv-2.dll +libogg-0.dll +libffi-6.dll +libintl-8.dll +libpango-1.0-0.dll +libpangocairo-1.0-0.dll +libpangoft2-1.0-0.dll +libpangomm-1.4-1.dll +libpangowin32-1.0-0.dll +libpixman-1-0.dll +libsamplerate-0.dll +libsigc-2.0-0.dll +libsndfile-1.dll +libxml2-2.dll +zlib1.dll +libstdc++-6.dll +libgcc_s_sjlj-1.dll +libwinpthread-1.dll +libeay32.dll +ssleay32.dll +libregex-1.dll +libportaudio-2.dll +' +. ./win32-env.sh +. ./print-env.sh + +cd $BASE || exit 1 + +if ! test -f $BUILD_CACHE_FILE; then + echo "ERROR: $APPNAME is not configured and built yet..." + exit 1 +fi + +if [ -d $PACKAGE_DIR ]; then + echo "Removing old package directory structure ..." + rm -rf $PACKAGE_DIR || exit 1 +fi +echo "./waf --destdir=$PACKAGE_DIR install" + +./waf --destdir=$PACKAGE_DIR install || exit 1 + +echo "Moving everything from $PACKAGE_DIR/msys to $PACKAGE_DIR ..." +mv $PACKAGE_DIR/msys/* $PACKAGE_DIR || exit 1 +rmdir $PACKAGE_DIR/msys || exit 1 + + +echo "Moving Ardour dll's and executable to $PACKAGE_DIR ..." + +echo "mv $PACKAGE_DIR/lib/ardour3/*.dll $PACKAGE_DIR" +echo "mv $PACKAGE_DIR/lib/ardour3/*.exe $PACKAGE_DIR" + +mv $PACKAGE_DIR/lib/ardour3/*.dll $PACKAGE_DIR || exit 1 +mv $PACKAGE_DIR/lib/ardour3/*.exe $PACKAGE_DIR || exit 1 + +echo "Deleting import libs ..." + +rm $PACKAGE_DIR/lib/*dll.a || exit 1 + +# delete sh script +rm $PACKAGE_DIR/ardour3 || exit 1 + +if test x$WITH_TESTS != x ; then + echo "Copying tests and test data to $PACKAGE_DIR ..." + cp $BUILD_DIR/libs/pbd/run-tests.exe $PACKAGE_DIR/pbd-run-tests.exe || exit 1 + cp -r $BASE/libs/pbd/test $PACKAGE_DIR/pbd_testdata || exit 1 + + cp $BUILD_DIR/libs/evoral/run-tests.exe $PACKAGE_DIR/evoral-run-tests.exe || exit 1 + mkdir -p $PACKAGE_DIR/test/testdata || exit 1 + cp -r $BASE/libs/evoral/test/testdata/TakeFive.mid $PACKAGE_DIR/test/testdata || exit 1 + + cp -r $BASE/libs/ardour/test/data $PACKAGE_DIR/ardour_testdata || exit 1 +fi + +echo "Copying mingw config files to $PACKAGE_DIR ..." +# just copy it all for now +cp -r $MINGW_ROOT/etc $PACKAGE_DIR || exit 1 + +cp -r $GTK/lib/gtk-2.0 $PACKAGE_DIR/lib || exit 1 +cp -r $GTK/lib/gdk-pixbuf-2.0 $PACKAGE_DIR/lib || exit 1 +cp $TOOLS_DIR/loaders.cache $PACKAGE_DIR/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache || exit 1 + +mkdir -p $PACKAGE_DIR/lib/pango/1.6.0/modules || exit 1 +cp -r $GTK/lib/pango/1.6.0/modules/*.dll $PACKAGE_DIR/lib/pango/1.6.0/modules || exit 1 + +cp -r $TOOLS_DIR/mingw64/* $PACKAGE_DIR/etc || exit 1 + +echo "Copying mingw shared libraries to $PACKAGE_DIR ..." + +for i in $DLLS; +do +copydll "$i" "$PACKAGE_DIR" || exit 1 +done + +echo "Copying JACK server and drivers to $PACKAGE_DIR ..." + +# VK: -- FIXIT cp $MINGW_ROOT/bin/jackd.exe $PACKAGE_DIR || exit 1 +# VK: -- FIXIT cp -r $MINGW_ROOT/bin/jack $PACKAGE_DIR || exit 1 +# VK: -- FIXIT cp $MINGW_ROOT/bin/libportaudio-2.dll $PACKAGE_DIR || exit 1 + +SRC_DIRS=' +libs/ardour +libs/pbd +libs/gtkmm2ext +libs/midi++2 +libs/evoral +libs/panners +libs/timecode +libs/audiographer +' + +if test x$DEBUG != x ; then + + PACKAGE_SRC_DIR=$PACKAGE_DIR/src + echo "Copying source files to $PACKAGE_SRC_DIR ..." + mkdir -p $PACKAGE_SRC_DIR/libs || exit 1 + cp -r $BASE/gtk2_ardour $PACKAGE_SRC_DIR || exit 1 + for i in $SRC_DIRS; + do + cp -r -p $BASE/$i $PACKAGE_SRC_DIR/libs || exit 1 + done + + echo "Copying JACK utility programs to $PACKAGE_DIR ..." + # VK: -- FIXIT cp $MINGW_ROOT/bin/jack_*.exe $PACKAGE_DIR || exit 1 + + echo "Copying any debug files to $PACKAGE_DIR ..." + # VK: -- FIXIT cp $MINGW_ROOT/bin/*.debug $PACKAGE_DIR || exit 1 + + echo "Copying gdb to $PACKAGE_DIR ..." + cp $MINGW_ROOT/bin/gdb.exe $PACKAGE_DIR || exit 1 + + echo "Copying .gdbinit to $PACKAGE_DIR ..." + cp $TOOLS_DIR/gdbinit $PACKAGE_DIR/.gdbinit || exit 1 + + echo "Copying Gtk demo to $PACKAGE_DIR ..." + cp $GTK/bin/gtk-demo.exe $PACKAGE_DIR || exit 1 +else + echo "Optimized build Stripping executable ..." + $STRIP $PACKAGE_DIR/ardour-3.0.exe || exit 1 + echo "Stripping libraries ..." || exit 1 + find $PACKAGE_DIR -type f -name "*.dll*" | xargs $STRIP +fi + +if [ "$1" == "--tarball" ]; then + echo "Creating tarball from $PACKAGE_DIR ..." + cd $BASE || exit 1 + tar -cvJf $PACKAGE_DIR.tar.xz $PACKAGE_DIR || exit 1 +fi + +if [ "$1" == "--zip" ]; then + echo "Creating zip file from $PACKAGE_DIR ..." + cd $BASE || exit 1 + zip -r $PACKAGE_DIR.zip $PACKAGE_DIR || exit 1 +fi diff --git a/tools/windows_packaging/startvm.sh b/tools/windows_packaging/startvm.sh deleted file mode 100755 index de65be9b5d..0000000000 --- a/tools/windows_packaging/startvm.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -. mingw-env.sh - -qemu-kvm -smp 2 -m 1536 -hda $VIRT_IMAGE_PATH -net nic -net user -vga std -soundhw all diff --git a/tools/windows_packaging/win32-env.sh b/tools/windows_packaging/win32-env.sh new file mode 100755 index 0000000000..5bdf4d2238 --- /dev/null +++ b/tools/windows_packaging/win32-env.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +BASE=$(readlink -f $0) +BASE=$(dirname $BASE) # up one +BASE=$(dirname $BASE) # up one more +BASE=$(dirname $BASE) # up one more + +HOST=x86_64-w64-mingw32 +MINGW_ROOT=/mingw +GTK=$HOME/gtk/inst +A3=$HOME/A3/inst + +export PKG_CONFIG_PREFIX=$MINGW_ROOT +export PKG_CONFIG_LIBDIR=$MINGW_ROOT/lib/pkgconfig +export PKGCONFIG=pkg-config +export AR=ar +export RANLIB=ranlib +export CC=gcc +export CPP=g++ +export CXX=g++ +export AS=as +export LINK_CC=gcc +export LINK_CXX=g++ +export WINRC=windres +export STRIP=strip + +BUILD_DIR=$BASE/build +BUILD_CACHE_FILE=$BUILD_DIR/c4che/_cache.py +TOOLS_DIR=$BASE/tools/windows_packaging + +. ../define_versions.sh + +APPNAME=`grep -m 1 '^APPNAME' $BASE/wscript | awk '{print $3}' | sed "s/'//g"` + +# These are only relevant after a build +if test -f $BUILD_CACHE_FILE +then + # Figure out the Build Type + if grep -q "DEBUG = True" $BUILD_CACHE_FILE; then + DEBUG=1 + PACKAGE_DIR="$HOME/$APPNAME-win32-dbg" + else + PACKAGE_DIR="$HOME/$APPNAME-win32" + fi + + if grep -q "BUILD_TESTS = True" $BUILD_CACHE_FILE; then + WITH_TESTS=1 + fi + + ARDOUR_DATA_DIR=$PACKAGE_DIR/msys/share/ardour3 +fi + +# put this somewhere better... +VIRT_IMAGE_PATH=$HOME/Data/virt-images/winxp.raw diff --git a/tools/windows_packaging/wine-ardour-tests.sh b/tools/windows_packaging/wine-ardour-tests.sh new file mode 100755 index 0000000000..a4bd033c8b --- /dev/null +++ b/tools/windows_packaging/wine-ardour-tests.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +. ./wine-env.sh + +if [ "$1" == "--list" ]; then + TESTS='test_*' + for test_program in `find -name "$TESTS" -type f -perm /u+x`; + do + echo "$test_program" + done + exit 0 +fi + +if [ "$1" == "--single" ] || [ "$2" == "--single" ]; then + if [ "$1" == "--single" ]; then + TESTS="test_*$2*" + elif [ "$2" == "--single" ]; then + TESTS="test_*$3*" + else + TESTS='test_*' + fi + for test_program in `find . -name "$TESTS" -type f -perm /u+x`; + do + echo "Running $test_program..." + wine "$test_program" + done +else + wine run-tests.exe +fi diff --git a/tools/windows_packaging/wine-ardour.sh b/tools/windows_packaging/wine-ardour.sh new file mode 100755 index 0000000000..cb6547427e --- /dev/null +++ b/tools/windows_packaging/wine-ardour.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +. ./wine-env.sh + +wine ardour-3.3.exe diff --git a/tools/windows_packaging/run-wine.sh b/tools/windows_packaging/wine-env.sh similarity index 60% rename from tools/windows_packaging/run-wine.sh rename to tools/windows_packaging/wine-env.sh index 86415206cc..95d0bf79a0 100755 --- a/tools/windows_packaging/run-wine.sh +++ b/tools/windows_packaging/wine-env.sh @@ -4,6 +4,11 @@ cd $BASE +if test ! -d $PACKAGE_DIR; then + echo "Win32 package directory does not exist" + exit 1 +fi + LIBS=$BUILD_DIR/libs export ARDOUR_PATH=$BASE/gtk2_ardour/icons:$BASE/gtk2_ardour/pixmaps:$BASE/build/default/gtk2_ardour:$BASE/gtk2_ardour:. @@ -15,25 +20,4 @@ export VAMP_PATH=$LIBS/vamp-plugins${VAMP_PATH:+:$VAMP_PATH} export PBD_TEST_PATH=$BASE/libs/pbd/test/ -if test ! -d $PACKAGE_DIR; then - echo "Win32 package directory does not exist" - exit 1 -fi - -cd $PACKAGE_DIR - - -if [ "$1" == "--run-tests" ]; then - if test x$WITH_TESTS != x ; then - echo "<<<<<<<<<<<<<<<<<< RUNNING LIBPBD TESTS >>>>>>>>>>>>>>>>>>>" - wine pbd-run-tests.exe - echo "<<<<<<<<<<<<<<<<<< RUNNING EVORAL TESTS >>>>>>>>>>>>>>>>>>>" - wine evoral-run-tests.exe - echo "<<<<<<<<<<<<<<<<<< RUNNING ARDOUR TESTS >>>>>>>>>>>>>>>>>>>" - wine ardour-run-tests.exe - else - echo "No tests to run ..." - fi -else - wine ardour-3.0.exe -fi +cd $PACKAGE_DIR diff --git a/tools/windows_packaging/wine-evoral-tests.sh b/tools/windows_packaging/wine-evoral-tests.sh new file mode 100755 index 0000000000..50b77f70c8 --- /dev/null +++ b/tools/windows_packaging/wine-evoral-tests.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +. ./wine-env.sh + +wine evoral-run-tests.exe diff --git a/tools/windows_packaging/wine-pbd-tests.sh b/tools/windows_packaging/wine-pbd-tests.sh new file mode 100755 index 0000000000..a7306caf6c --- /dev/null +++ b/tools/windows_packaging/wine-pbd-tests.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +. ./wine-env.sh + +wine pbd-run-tests.exe diff --git a/waf b/waf index 9d2582a24a..d1d9ea7252 100755 Binary files a/waf and b/waf differ diff --git a/wscript b/wscript index b302fe9d5a..a0b439e48c 100644 --- a/wscript +++ b/wscript @@ -6,6 +6,7 @@ import re import string import subprocess import sys +import platform as PLATFORM def fetch_git_revision (): cmd = "git describe HEAD" @@ -50,15 +51,17 @@ top = '.' out = 'build' children = [ - 'libs/pbd', - 'libs/midi++2', - 'libs/evoral', + # optionally external libraries 'libs/vamp-sdk', 'libs/qm-dsp', 'libs/vamp-plugins', 'libs/taglib', 'libs/libltc', 'libs/rubberband', + # core ardour libraries + 'libs/pbd', + 'libs/midi++2', + 'libs/evoral', 'libs/surfaces', 'libs/panners', 'libs/backends', @@ -72,7 +75,7 @@ children = [ 'export', 'midi_maps', 'mcp', - 'patchfiles' + 'patchfiles', ] i18n_children = [ @@ -84,7 +87,7 @@ i18n_children = [ # Version stuff def fetch_gcc_version (CC): - cmd = "LANG= %s --version" % CC + cmd = "%s --version" % CC output = subprocess.Popen(cmd, shell=True, stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0].splitlines() o = output[0].decode('utf-8') version = o.split(' ')[2].split('.') @@ -136,7 +139,7 @@ def set_compiler_flags (conf,opt): # Debugging flags debug_flags = [] - u = os.uname () + u = PLATFORM.uname () cpu = u[4] platform = u[0].lower() version = u[2] @@ -804,7 +807,7 @@ const char* const ardour_config_info = "\\n\\ write_config_text('C compiler flags', conf.env['CFLAGS']) write_config_text('C++ compiler flags', conf.env['CXXFLAGS']) - write_config_text('Linker flags', conf.env['LINKFLAGS']) + write_config_text('Linker flags', conf.env['LINKFLAGS']) config_text.write ('";\n}\n') config_text.close () @@ -815,18 +818,16 @@ def build(bld): # add directories that contain only headers, to workaround an issue with waf - bld.path.find_dir ('libs/evoral/evoral') if not bld.is_defined('USE_EXTERNAL_LIBS'): bld.path.find_dir ('libs/vamp-sdk/vamp-sdk') - bld.path.find_dir ('libs/surfaces/control_protocol/control_protocol') - bld.path.find_dir ('libs/timecode/timecode') - if not bld.is_defined('USE_EXTERNAL_LIBS'): bld.path.find_dir ('libs/libltc/ltc') bld.path.find_dir ('libs/rubberband/rubberband') + bld.path.find_dir ('libs/taglib/taglib') + bld.path.find_dir ('libs/evoral/evoral') + bld.path.find_dir ('libs/surfaces/control_protocol/control_protocol') + bld.path.find_dir ('libs/timecode/timecode') bld.path.find_dir ('libs/gtkmm2ext/gtkmm2ext') bld.path.find_dir ('libs/ardour/ardour') - if not bld.is_defined('USE_EXTERNAL_LIBS'): - bld.path.find_dir ('libs/taglib/taglib') bld.path.find_dir ('libs/pbd/pbd') autowaf.set_recursive()