DMD works on GNU/Linux, samples updated
This commit is contained in:
parent
1ebea84622
commit
fe7bf93206
4 changed files with 33 additions and 33 deletions
|
@ -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(
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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})
|
||||
|
|
Loading…
Add table
Reference in a new issue