DMD works on GNU/Linux, samples updated

This commit is contained in:
selman 2007-03-20 12:27:50 +00:00
parent 1ebea84622
commit fe7bf93206
4 changed files with 33 additions and 33 deletions

View file

@ -107,16 +107,11 @@ IF(CMAKE_COMPILER_IS_GDC)
SET(CMAKE_SHARED_LIBRARY_CREATE_D_FLAGS "-shared")
ELSE(CMAKE_COMPILER_IS_GDC)
SET(CMAKE_OUTPUT_D_FLAG "-of")
IF(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
# not a good way but works because dmd using gcc
# for linker on Linux
SET(CMAKE_LINK_LIBRARY_FLAG "-L-l")
SET(CMAKE_LIBRARY_PATH_FLAG "-L-L")
ELSE(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
# dmd part doesn't work for now
IF(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
SET(CMAKE_LINK_LIBRARY_FLAG "-L+")
SET(CMAKE_LIBRARY_PATH_FLAG "-I")
ENDIF(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
FIND_PROGRAM(DMD_LIBRARIAN "lib.exe")
ENDIF(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
ENDIF(CMAKE_COMPILER_IS_GDC)
@ -133,9 +128,20 @@ ENDIF(NOT CMAKE_D_CREATE_SHARED_MODULE)
# create a D static library
IF(NOT CMAKE_D_CREATE_STATIC_LIBRARY)
SET(CMAKE_D_CREATE_STATIC_LIBRARY
IF(CMAKE_COMPILER_IS_GDC)
SET(CMAKE_D_CREATE_STATIC_LIBRARY
"<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS> "
"<CMAKE_RANLIB> <TARGET> ")
ELSE(CMAKE_COMPILER_IS_GDC)
IF(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
SET(CMAKE_D_CREATE_STATIC_LIBRARY
"<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS> "
"<CMAKE_RANLIB> <TARGET> ")
ELSE(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
SET(CMAKE_D_CREATE_STATIC_LIBRARY
"${DMD_LIBRARIAN} -c -p256 <TARGET> <OBJECTS>")
ENDIF(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
ENDIF(CMAKE_COMPILER_IS_GDC)
ENDIF(NOT CMAKE_D_CREATE_STATIC_LIBRARY)
# compile a D file into an object file
@ -145,8 +151,13 @@ IF(NOT CMAKE_D_COMPILE_OBJECT)
ENDIF(NOT CMAKE_D_COMPILE_OBJECT)
IF(NOT CMAKE_D_LINK_EXECUTABLE)
IF(CMAKE_COMPILER_IS_GDC)
SET(CMAKE_D_LINK_EXECUTABLE
"<CMAKE_D_COMPILER> <FLAGS> <CMAKE_D_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> ${CMAKE_OUTPUT_D_FLAG}<TARGET> <LINK_LIBRARIES>")
ELSE(CMAKE_COMPILER_IS_GDC)
SET(CMAKE_D_LINK_EXECUTABLE
"gcc <FLAGS> <CMAKE_D_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -lphobos -lpthread -lm")
ENDIF(CMAKE_COMPILER_IS_GDC)
ENDIF(NOT CMAKE_D_LINK_EXECUTABLE)
MARK_AS_ADVANCED(

View file

@ -3,15 +3,8 @@ import Hello.hello;
int main()
{
version (GNU)
{
Hail hello = new Hail();
hello.Print();
}
else
{
Print();
}
Hail hello = new Hail();
hello.Print();
return 0;
}

View file

@ -2,21 +2,13 @@ module Hello.hello;
import std.stdio;
version (GNU)
{
class Hail
{
public:
void Print()
{
writefln ("Hello, World!");
}
}
}
else
class Hail
{
public:
void Print()
{
writefln ("Hello, World!");
}
}

View file

@ -20,8 +20,12 @@ IF (GTK2_FOUND)
minwin/dialog.d minwin/image.d minwin/paint.d
minwin/event.d minwin/label.d minwin/peer.d )
ADD_DEFINITIONS (-fversion=GTK ${GTK2_DEFINITIONS})
IF(CMAKE_COMPILER_IS_GDC)
ADD_DEFINITIONS (-fversion=GTK ${GTK2_DEFINITIONS})
ELSE(CMAKE_COMPILER_IS_DMD)
ADD_DEFINITIONS (-version=GTK ${GTK2_DEFINITIONS})
ENDIF(CMAKE_COMPILER_IS_GDC)
ADD_LIBRARY (minwin_gtk ${SRCS})
TARGET_LINK_LIBRARIES (minwin_gtk ${GTK2_LIBRARIES})