Very basic stuff working on linux 32-bit with dmd and phobos2.
This commit is contained in:
parent
f23eee9828
commit
67f0225e42
152 changed files with 113 additions and 0 deletions
76
tests/FullSkeleton/libraryB/CMakeLists.txt
Executable file
76
tests/FullSkeleton/libraryB/CMakeLists.txt
Executable 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
|
||||
)
|
||||
|
131
tests/FullSkeleton/libraryB/LibraryB.d
Normal file
131
tests/FullSkeleton/libraryB/LibraryB.d
Normal 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
|
||||
}
|
||||
|
65
tests/FullSkeleton/libraryB/render/Renderer.d
Normal file
65
tests/FullSkeleton/libraryB/render/Renderer.d
Normal 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
|
||||
///////////////////////////////
|
||||
}
|
72
tests/FullSkeleton/libraryB/render/RendererWindows.d
Normal file
72
tests/FullSkeleton/libraryB/render/RendererWindows.d
Normal 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
|
||||
///////////////////////////////
|
||||
}
|
72
tests/FullSkeleton/libraryB/render/RendererX11.d
Normal file
72
tests/FullSkeleton/libraryB/render/RendererX11.d
Normal 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
|
||||
///////////////////////////////
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue