diff --git a/samples/HelloPhobos/CMakeLists.txt b/samples/HelloPhobos/CMakeLists.txt new file mode 100644 index 0000000..dd8bc1c --- /dev/null +++ b/samples/HelloPhobos/CMakeLists.txt @@ -0,0 +1,30 @@ +################################# +# Preamble +############## + +# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ +# is checked +set(CMAKE_MODULE_PATH + ${CMAKE_SOURCE_DIR}/cmake/Modules +) + +# Using Tango +set(CMAKE_D_USE_PHOBOS True) + +# check for DDoc usage +include(UseDDoc) + +################################# +# Project +############## + +# The name of our project is "HELLO". CMakeLists files in this project can +# refer to the root source directory of the project as ${HELLO_SOURCE_DIR} and +# to the root binary directory of the project as ${HELLO_BINARY_DIR}. +PROJECT (HELLO D) + +# Recurse into the "Hello" and "Demo" subdirectories. This does not actually +# cause another cmake executable to run. The same process will walk through +# the project's entire directory structure. +ADD_SUBDIRECTORY (Hello) +ADD_SUBDIRECTORY (Demo) diff --git a/samples/HelloPhobos/Demo/CMakeLists.txt b/samples/HelloPhobos/Demo/CMakeLists.txt new file mode 100644 index 0000000..7bf0014 --- /dev/null +++ b/samples/HelloPhobos/Demo/CMakeLists.txt @@ -0,0 +1,21 @@ +# Make sure the compiler can find include files from our Hello library. +INCLUDE_DIRECTORIES ( + ${CMAKE_BINARY_DIR} + ${CMAKE_SOURCE_DIR} +) + +# Make sure the linker can find the Hello library once it is built. +LINK_DIRECTORIES ( + ${HELLO_BINARY_DIR}/Hello +) + +# Add executable called "helloDemo" that is built from the source files +# "demo.cxx" and "demo_b.cxx". The extensions are automatically found. +ADD_EXECUTABLE (helloDemo + demo.d +) + +# Link the executable to the Hello library. +TARGET_LINK_LIBRARIES (helloDemo + Hello +) diff --git a/samples/HelloPhobos/Demo/demo.d b/samples/HelloPhobos/Demo/demo.d new file mode 100644 index 0000000..fdb9470 --- /dev/null +++ b/samples/HelloPhobos/Demo/demo.d @@ -0,0 +1,9 @@ +import Hello.hello; + +int main() +{ + Hail hello = new Hail(); + hello.Print(); + + return 0; +} diff --git a/samples/HelloPhobos/Hello/CMakeLists.txt b/samples/HelloPhobos/Hello/CMakeLists.txt new file mode 100644 index 0000000..a662cb1 --- /dev/null +++ b/samples/HelloPhobos/Hello/CMakeLists.txt @@ -0,0 +1,8 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_SOURCE_DIR} +) + +# Create a library called "Hello" which includes the source file "hello.cxx". +# The extension is already found. Any number of sources could be listed here. +ADD_LIBRARY (Hello hello.d) diff --git a/samples/HelloPhobos/Hello/hello.d b/samples/HelloPhobos/Hello/hello.d new file mode 100644 index 0000000..ee86fed --- /dev/null +++ b/samples/HelloPhobos/Hello/hello.d @@ -0,0 +1,14 @@ +module Hello.hello; + +import std.stdio; + +class Hail +{ +public: + void Print() + { + writefln ("Hello, World!"); + } +} + + diff --git a/samples/HelloPhobos/cmake/Modules b/samples/HelloPhobos/cmake/Modules new file mode 120000 index 0000000..4506e23 --- /dev/null +++ b/samples/HelloPhobos/cmake/Modules @@ -0,0 +1 @@ +../../../cmaked/ \ No newline at end of file diff --git a/samples/HelloTango/cmake/Modules b/samples/HelloTango/cmake/Modules new file mode 120000 index 0000000..4506e23 --- /dev/null +++ b/samples/HelloTango/cmake/Modules @@ -0,0 +1 @@ +../../../cmaked/ \ No newline at end of file diff --git a/samples/wc/CMakeLists.txt b/samples/wc/CMakeLists.txt deleted file mode 100644 index 4d35057..0000000 --- a/samples/wc/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -PROJECT(wc D) - -ADD_EXECUTABLE(wc wc.d) diff --git a/samples/wc/wc.d b/samples/wc/wc.d deleted file mode 100644 index ca67be3..0000000 --- a/samples/wc/wc.d +++ /dev/null @@ -1,113 +0,0 @@ -import std.stdio; -import std.stream; - -int main (char[][] args) -{ - int w_total; - int l_total; - ulong c_total; - int[char[]] dictionary; - - writefln(" lines words bytes file"); - foreach (arg; args[1 .. args.length]) - { - int w_cnt, l_cnt; - bool inword; - - auto c_cnt = std.file.getSize(arg); - if (c_cnt < 10_000_000) - { - size_t wstart; - auto input = cast(char[])std.file.read(arg); - - foreach (j, c; input) - { - if (c == '\n') - ++l_cnt; - if (c >= '0' && c <= '9') - { - } - else if (c >= 'a' && c <= 'z' || - c >= 'A' && c <= 'Z') - { - if (!inword) - { - wstart = j; - inword = true; - ++w_cnt; - } - } - else if (inword) - { auto word = input[wstart .. j]; - - dictionary[word]++; - inword = false; - } - } - if (inword) - { auto w = input[wstart .. input.length]; - dictionary[w]++; - } - } - else - { - auto f = new BufferedFile(arg); - char[] buf; - - while (!f.eof()) - { char c; - - f.read(c); - if (c == '\n') - ++l_cnt; - if (c >= '0' && c <= '9') - { - if (inword) - buf ~= c; - } - else if (c >= 'a' && c <= 'z' || - c >= 'A' && c <= 'Z') - { - if (!inword) - { - buf.length = 1; - buf[0] = c; - inword = 1; - ++w_cnt; - } - else - buf ~= c; - } - else if (inword) - { - if (++dictionary[buf] == 1) - buf = null; - inword = 0; - } - } - if (inword) - { - dictionary[buf]++; - } - } - writefln("%8s%8s%8s %s\n", l_cnt, w_cnt, c_cnt, arg); - l_total += l_cnt; - w_total += w_cnt; - c_total += c_cnt; - } - - if (args.length > 2) - { - writefln("--------------------------------------\n%8s%8s%8s -total", - l_total, w_total, c_total); - } - - writefln("--------------------------------------"); - - foreach (word1; dictionary.keys.sort) - { - writefln("%3s %s", dictionary[word1], word1); - } - return 0; -}