Very basic stuff working on linux 32-bit with dmd and phobos2.

This commit is contained in:
Steve King 2010-08-10 21:55:30 -07:00
commit 67f0225e42
152 changed files with 113 additions and 0 deletions

View file

@ -0,0 +1,76 @@
#################################
# Project
##############
project(libraryB D)
#################################
# Dependencies
##############
# x11 plugin
if (BUILD_RENDERER_X11)
find_package(X11 REQUIRED)
set(RENDERER_X11_SOURCES
"render/RendererX11.d"
)
set(RENDERER_DEFINITIONS "${RENDERER_DEFINITIONS} ${CMAKE_D_VERSION_FLAG}RendererX11" CACHE BOOLEAN TRUE FORCE)
endif (BUILD_RENDERER_X11)
# windows renderer
if (BUILD_RENDERER_WIN)
set(RENDERER_WIN_SOURCES
"render/RendererWindows.d"
)
set(RENDERER_DEFINITIONS "${RENDERER_DEFINITIONS} ${CMAKE_D_VERSION_FLAG}RendererWin" CACHE BOOLEAN TRUE FORCE)
endif (BUILD_RENDERER_WIN)
#################################
# Compiler Switches
##############
include_directories(
${CMAKE_BINARY_DIR}
${CMAKE_SOURCE_DIR}
${X11_INCLUDE_DIR}
)
link_directories(
)
add_definitions(
${RENDERER_DEFINITIONS}
)
#################################
# Source Files
##############
add_library(B STATIC
LibraryB.d
render/Renderer.d
${RENDERER_X11_SOURCES}
${RENDERER_WIN_SOURCES}
)
#################################
# Linking
##############
target_link_libraries(B
A
${X11_LIBRARIES}
)
#################################
# Install Files
##############
file(GLOB headers "${CMAKE_CURRENT_SOURCE_DIR}/*.d")
install(
FILES
${headers}
DESTINATION
include/FullSkeleton/B
)

View file

@ -0,0 +1,131 @@
/**
*
* Main LibraryB Class
*
* Authors: Tim Burrell
* Copyright: Copyright (c) 2007
* License: <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>
*
**/
////////////////////////////////////////////////////////////////////////////
// Module
///////////////////////////////////////
module libraryB.LibraryB;
////////////////////////////////////////////////////////////////////////////
// Imports
///////////////////////////////////////
import config;
import libraryB.render.Renderer;
version(RendererX11) {
import libraryB.render.RendererX11;
}
version(RendererWin) {
import libraryB.render.RendererWindows;
}
import libraryA.io.Output;
import libraryA.mixins.HandyMixins;
////////////////////////////////////////////////////////////////////////////
// Typedef's / enums
///////////////////////////////////////
/**
* RendererClass Enum
*
* Conditional Enum that can have different elements based on what
* Renderers have been selected for compilation
**/
mixin(enumConditional!("RendererClass",
"RendererX11", RENDERER_X11 == "True",
"RendererWin", RENDERER_WIN == "True"
).createEnum());
////////////////////////////////////////////////////////////////////////////
// Class Definition
///////////////////////////////////////
/**
* This is the main instance of LibraryB
*
* Your program should inherit this class
**/
class LibraryB {
////////////////////////////////////////////////////////////////////
// Construction
///////////////////////////////
/**
* Default Constructor
**/
this() {
Out("Construct Library B");
}
/**
* Destructor
**/
~this() {
Out("Destruct Library B");
}
////////////////////////////////////////////////////////////////////
// Public functions
///////////////////////////////
/**
* Enter the processing loop
**/
void enterLoop() {
if (mRenderer is null)
throw new Exception("You must intialize LibraryB!");
// do event loop here!
}
/**
* Initialize LibraryB with a specific renderer
*
* Params: Renderer = Renderer to use
**/
void initialize(RendererClass Renderer) {
// allocate the renderer
switch (Renderer) {
version(RendererX11) {
case RendererClass.RendererX11:
mRenderer = new RendererX11();
break;
}
version(RendererWin) {
case RendererClass.RendererWin:
mRenderer = new RendererWindows();
break;
}
default:
throw new Exception("Invalid Renderer Specified!");
}
// initialize the renderer
mRenderer.initialize();
}
////////////////////////////////////////////////////////////////////
private:
////////////////////////////////////////////////////////////////////
// Private Functions
///////////////////////////////
////////////////////////////////////////////////////////////////////
// Private Members
///////////////////////////////
Renderer mRenderer; /// The renderer
}

View file

@ -0,0 +1,65 @@
/**
*
* enCurseD Renderer Class
*
* Authors: Tim Burrell
* Copyright: Copyright (c) 2007
* License: <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>
*
**/
////////////////////////////////////////////////////////////////////////////
// Module
///////////////////////////////////////
module enCurseD.render.Renderer;
////////////////////////////////////////////////////////////////////////////
// Imports
///////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
// Class Definition
///////////////////////////////////////
/**
* Renderer Class
**/
class Renderer {
////////////////////////////////////////////////////////////////////
// Construction
///////////////////////////////
/**
* Default Constructor
**/
this() {
}
/**
* Destructor
**/
~this() {
}
////////////////////////////////////////////////////////////////////
// Public functions
///////////////////////////////
/**
* Initialize the renderer
**/
abstract void initialize();
////////////////////////////////////////////////////////////////////
private:
////////////////////////////////////////////////////////////////////
// Private Functions
///////////////////////////////
////////////////////////////////////////////////////////////////////
// Private Members
///////////////////////////////
}

View file

@ -0,0 +1,72 @@
/**
*
* enCurseD RendererWindows Class
*
* Authors: Tim Burrell
* Copyright: Copyright (c) 2007
* License: <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>
*
**/
////////////////////////////////////////////////////////////////////////////
// Module
///////////////////////////////////////
module libraryB.render.RendererWindows;
////////////////////////////////////////////////////////////////////////////
// Imports
///////////////////////////////////////
import libraryB.render.Renderer;
import libraryA.io.Output;
////////////////////////////////////////////////////////////////////////////
// Class Definition
///////////////////////////////////////
/**
* RendererWindows Class
**/
class RendererWindows : Renderer {
////////////////////////////////////////////////////////////////////
// Construction
///////////////////////////////
/**
* Default Constructor
**/
this() {
}
/**
* Destructor
**/
~this() {
}
////////////////////////////////////////////////////////////////////
// Public functions
///////////////////////////////
/**
* Initialize the renderer
**/
void initialize() {
Out("LibraryA Windows Renderer Initializing...");
Out("LibraryA Windows Renderer Initialized");
}
////////////////////////////////////////////////////////////////////
private:
////////////////////////////////////////////////////////////////////
// Private Functions
///////////////////////////////
////////////////////////////////////////////////////////////////////
// Private Members
///////////////////////////////
}

View file

@ -0,0 +1,72 @@
/**
*
* enCurseD RendererX11 Class
*
* Authors: Tim Burrell
* Copyright: Copyright (c) 2007
* License: <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>
*
**/
////////////////////////////////////////////////////////////////////////////
// Module
///////////////////////////////////////
module libraryB.render.RendererX11;
////////////////////////////////////////////////////////////////////////////
// Imports
///////////////////////////////////////
import libraryB.render.Renderer;
import libraryA.io.Output;
////////////////////////////////////////////////////////////////////////////
// Class Definition
///////////////////////////////////////
/**
* RendererX11 Class
**/
class RendererX11 : Renderer {
////////////////////////////////////////////////////////////////////
// Construction
///////////////////////////////
/**
* Default Constructor
**/
this() {
}
/**
* Destructor
**/
~this() {
}
////////////////////////////////////////////////////////////////////
// Public functions
///////////////////////////////
/**
* Initialize the renderer
**/
void initialize() {
Out("LibraryB X11 Renderer Initializing...");
Out("LibraryB X11 Renderer Initialized");
}
////////////////////////////////////////////////////////////////////
private:
////////////////////////////////////////////////////////////////////
// Private Functions
///////////////////////////////
////////////////////////////////////////////////////////////////////
// Private Members
///////////////////////////////
}