diff --git a/Example/CMakeLists.txt b/Example/CMakeLists.txt new file mode 100644 index 000000000..4ebee3367 --- /dev/null +++ b/Example/CMakeLists.txt @@ -0,0 +1,9 @@ +# 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) + +# 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. +SUBDIRS(Hello Demo) diff --git a/Example/Demo/CMakeLists.txt b/Example/Demo/CMakeLists.txt new file mode 100644 index 000000000..309d40f7c --- /dev/null +++ b/Example/Demo/CMakeLists.txt @@ -0,0 +1,12 @@ +# Make sure the compiler can find include files from our Hello library. +INCLUDE_DIRECTORIES(${HELLO_SOURCE_DIR}/Hello) + +# 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 demo_b) + +# Link the executable to the Hello library. +TARGET_LINK_LIBRARIES(helloDemo Hello) diff --git a/Example/Demo/demo.cxx b/Example/Demo/demo.cxx new file mode 100644 index 000000000..f266c6b28 --- /dev/null +++ b/Example/Demo/demo.cxx @@ -0,0 +1,11 @@ +#include +#include "hello.h" + +extern Hello hello; + +int main() +{ + hello.Print(); + + return 0; +} diff --git a/Example/Demo/demo_b.cxx b/Example/Demo/demo_b.cxx new file mode 100644 index 000000000..08a232913 --- /dev/null +++ b/Example/Demo/demo_b.cxx @@ -0,0 +1,3 @@ +#include "hello.h" + +Hello hello; diff --git a/Example/Hello/CMakeLists.txt b/Example/Hello/CMakeLists.txt new file mode 100644 index 000000000..284eed16b --- /dev/null +++ b/Example/Hello/CMakeLists.txt @@ -0,0 +1,3 @@ +# 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) diff --git a/Example/Hello/hello.cxx b/Example/Hello/hello.cxx new file mode 100644 index 000000000..7107cc555 --- /dev/null +++ b/Example/Hello/hello.cxx @@ -0,0 +1,7 @@ +#include "hello.h" +#include + +void Hello::Print() +{ + printf("Hello, World!\n"); +} diff --git a/Example/Hello/hello.h b/Example/Hello/hello.h new file mode 100644 index 000000000..b17d68343 --- /dev/null +++ b/Example/Hello/hello.h @@ -0,0 +1,11 @@ +#ifndef _hello_h +#define _hello_h + + +class Hello +{ +public: + void Print(); +}; + +#endif