Note: This website is archived. For up-to-date information about D projects and development, please visit

Changes between Version 64 and Version 65 of WikiStart

aldacron (IP:
05/15/12 05:59:22 (5 years ago)



  • WikiStart

    v64 v65  
    1010 * Selective Symbol Loading - This feature allows you to override exceptions thrown by Derelict when a shared library symbol fails to load. It is a goal of the project that each Derelict package be updated from time-to-time to load the latest version of each library. Often, new library versions include new functions. If a user has an older version of the library installed, one that is missing the new function symbols, Derelict will notice and throw an exception. By making use of Selective Symbol Loading, you can override this behavior and allow the older library version to load successfully. 
     12== Versions == 
     14Derelict isn't versioned in the traditional sense. There's no such thing as or any other such scheme that makes sense for the project. It is, after all, just a collection of bindings. But there are three distinct versions of Derelict, with differences in compiler & standard library support and implementation details. 
     16Derelict 1 is is still around, but it's safe to say that project is basically dead. It supported both Phobos and Tango, but only worked with the D1 compilers. It was superceeded by Derelict 2, of which you can read more about below. You can still see the old DerelictWiki, if you are interested. 
     18The latest version is Derelict 3, which eliminates a few packages, updates some others (like moving from SDL 1.2 to SDL 2), and drops support for D1 and Tango. It is still in and alpha state and probably unsuitable for anyone who doesn't know their way around a command line. If you need to use SDL 2, OpenGL 3+ (without the deprecated features) or GLFW 3, Derelict 3 is the place to be. You can find it over at github: 
    1220== Derelict2 == 
    14 Work on a revamped Derelict is well under way. Some benefits of this new version: 
     22Work on a revamped Derelict began in March of 2009. All of the major work is complete, such as the important bits of documentation and the priority packages. All that's missing is a few minor details, but it is quite usable and should be the preferred version of Derelict for most people. It differs from Derelict 1 in that it has: 
    1524 * support for D1, D2, Phobos, and Tango 
    16  * streamlined package hierarchy 
     25 * a streamlined package hierarchy 
    1726 * a configurable make-based build system intended to replace the dependency on build tools 
    1827 * easier addition of Derelict modules to the import path 
    1928 * a much improved OpenGL extension management interface in DerelictGL 
    2029 * a redesigned loading mechanism, making it easier to implement and maintain packages 
    22 If you are interested in helping get Derelict2 ready for prime time, I would love your help! We need testers on Windows and Linux, as well as someone to get it ported to Mac. Progress is slow, but steady. More hands involved can help speed it up. 
    2431You can start by checking out the Derelict2 branch at:  
    30 Work has begun on the documentation, which you can view online at: 
     37The documentation is mostly complete. Everything you need to know to compile and use Derelict can be found at: 
    32 Please keep in mind that the docs are a work in progress. They are currently incomplete and might not reflect the current state of the repository. 
    34 Important information regarding Derelict2 to help get you going can be found in sticky topics in the [ forums]. More information here on the Wiki will come at a later date. Until then, just ask in the forums if you have trouble
     40The documentation is also included when you checkout or download the source tree from the repository
    36 The rest of the information on this page relates to Derelict1. 
    38 == Getting Started == 
    40 To start using Derelict, you will need the latest [ Derelict source] and either [ Derek Parnell's Bud], [ Gregor Richards' Rebuild] or [ DSSS]. If you are using Derelict with Tango, Bud will likely have problems, so you should prefer Rebuild for such applications. 
    42 Derelict applications compiled on Linux have a dependency on libdl, so you will need to tell your build tool to link with that library when compiling. 
    44 === Obtaining and Learning Derelict === 
    46 Manually Download Derelict: [ here] 
    48 Automatically Download Derelict: You can use [ DSSS] to automatically download and compile the Derelict packages. Once DSSS is installed, use the command 'dsss net install derelict' to pull down all Derelict packages. You can also use the command 'dsss net install packagename', where package name is a Derelict package name such as DerelictGL, to pull down a specific package and its dependencies. See the DSSS documentation for more information on how to use it. '''This is the recommended way for newcomers to use Derelict'''. 
    50 Derelict Forums: [ here] 
    52 Documentation: [ here] 
    54 Tutorials: [ DMedia] has a few tutorials on using DerelictSDL and DerelictGL. 
    56 === Building Derelict === 
    57 For the large majority of applications, '''you do not need to build the Derelict libraries'''. Bud, Rebuild and DSSS can each compile your applications without the need to link with any Derelict libraries at all. As long as the Derelict modules are on your import path, both Bud and Rebuild will automatically compile those modules that you require and will link the resulting object files into your final executable. One drawback to this approach is that the final size of the executable will be bigger than if you were to link to the libraries. Also, users of [ Code::Blocks], or other IDES that compile and link D applications in a two-step process, will need to use the build script to create the Derelict libraries. 
    59 The easiest way to build the Derelict libraries is to use [ DSSS]. If you aren't using it to download and manage the libraries for you, you can perform the following steps to manually build the libraries. 
    61 {{{ 
    62 cd DerelictDir 
    63 dsss build 
     42Important information regarding Derelict2 to help get you going can be found in sticky topics in the [ forums]. Just ask in the forums if you have trouble. 
    70 }}} 
    72 This should result in all Derelict libraries being compiled and copied do Derelict/lib. If you aren't using DSSS to manage your installed libraries, this is the recommended way to build the libraries. 
    74 If you aren't using DSSS, you can use the old build script. Unfortunately, it can only be executed as a script in a Phobos environment. If you are building the libraries in a Tango environment, you will first need to use Rebuild (or DSSS) to compile the script into an executable. You can then execute the resulting binary and it will do the right thing. However, you will still need to have Bud installed on your path, as the script used Bud internally. 
    77 To build Derelict in debug mode in a Phobos Environment: 
    78 {{{ 
    79 cd DerelictDir 
    80 dmd -run buildme.d debug 
    81 }}} 
    83 To build in Release mode: 
    84 {{{ 
    85 cd DerelictDir 
    86 dmd -run buildme.d 
    87 }}} 
    89 In a Tango environment, first compile the build script into an executable using Rebuild (Bud will fail on Windows): 
    90 {{{ 
    91 cd DerelictDir 
    92 rebuild -clean buildme.d 
    93 }}} 
    95 You can then run the executable to build the libraries, using the same command line options. On Windows: 
    96 {{{ 
    97 buildme debug 
    98 }}} 
    100 On Linux: 
    101 {{{ 
    102 ./buildme debug 
    103 }}} 
    105 Detailed build instructions are available in [ the documentation]. Follow the link "Building Derelict" in the left side bar, or view [ build.html] directly. 
    107 == Libraries Supported By Derelict == 
    109 Here is a list of the libraries for which Derelict currently provides bindings: 
    110  * Open Dynamics Engine (ODE) 
    111  * OpenAL 
    112  * OpenGL 
    113  * OpenGL Utility Library (GLU) 
    114  * DevIL, ILU, and ILUT 
    115  * SDL 
    116  * SDL_image 
    117  * SDL_mixer 
    118  * SDL_net 
    119  * SDL_ttf 
    120  * !FreeType 
    121  * libogg 
    122  * libvorbis  
    124 Although not official Derelict packages, members of the community have produced the following bindings (these packages may or may not be compilable with the latest DMD or GDC):  
    126  * [ BassMod], [ Mirror] 
    127  * [ GLUT], [ Mirror] 
    128  * [ PhysFS], [ Mirror] 
    129  * [ Lua], [ Mirror] 
    130  * [ QuesoGLC] 
    131  * [ GLFW] 
    132  * [ CG] (for OpenGL, not DirectX) 
    133  * [ Horde3D], [ Other] 
    134  * [ GLFW] (same as above, but with cleaned up code) 
    135  * [ ALUT] 
    136  * [ ALURE] 
    137  * [ TinyPy] 
    138  * [ SDL_Sound] 
    139  * [ Theora] 
    140  * [ libPCRE] 
    141  * [ libSGML] 
    142  * [ SDL_GFX(Derelict2 only)] 
    143  * [ BASS] 
    145 == Need More Help? == 
    147 See the Derelict [ documentation] for specific details on a particular package. If you are having problems installing or using Derelict, please visit the [ forums]. 
    150 == Projects that use Derelict == 
    152  * [ ArcLib] 
    153  * [ Atomorun2008] 
    154  * [ Blaze] 
    155  * [ Bosskoneun] 
    156  * [ Deadlock] 
    157  * [ Defend] 
    158  * [ gjkd] 
    159  * [ guisterax] 
    160  * [ Luigi] 
    161  * [ Mayhem Intergalactic]  
    162  * [ QonkD] 
    163  * [ SeamzGood] 
    164  * [ Vibrant] 
    165  * [ Yage] 
    166  * [ Wormhol]