From 8110aff5636a118ae76a602262fc8ed1d3edaddc Mon Sep 17 00:00:00 2001 From: Jiawei Wang Date: Mon, 8 Sep 2014 15:35:39 -0400 Subject: [PATCH] Project0 finished Screen shot is attached in the folder. --- .gitignore | 70 +- CMakeCache.txt | 298 + CMakeFiles/3.0.1/CMakeSystem.cmake | 15 + .../3.0.1/CompilerIdC/CMakeCCompilerId.c | 442 + .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 430 + CMakeFiles/CMakeError.log | 61 + CMakeFiles/CMakeOutput.log | 1 + CMakeFiles/cmake.check_cache | 1 + CMakeLists.txt | 190 +- PROJ0_MAC/CIS565_PROJ_0 | Bin 0 -> 630564 bytes PROJ0_MAC/CMakeCache.txt | 536 + .../CMakeFiles/3.0.1/CMakeCCompiler.cmake | 58 + .../CMakeFiles/3.0.1/CMakeCXXCompiler.cmake | 59 + .../3.0.1/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 4368 bytes .../3.0.1/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 4392 bytes PROJ0_MAC/CMakeFiles/3.0.1/CMakeSystem.cmake | 15 + .../3.0.1/CompilerIdC/CMakeCCompilerId.c | 442 + PROJ0_MAC/CMakeFiles/3.0.1/CompilerIdC/a.out | Bin 0 -> 8600 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 430 + .../CMakeFiles/3.0.1/CompilerIdCXX/a.out | Bin 0 -> 8632 bytes .../CIS565_PROJ_0.dir/CXX.includecache | 470 + .../CIS565_PROJ_0.dir/DependInfo.cmake | 24 + .../CMakeFiles/CIS565_PROJ_0.dir/build.make | 149 + .../CIS565_PROJ_0.dir/cmake_clean.cmake | 13 + .../CIS565_PROJ_0.dir/depend.internal | 57 + .../CMakeFiles/CIS565_PROJ_0.dir/depend.make | 57 + .../CMakeFiles/CIS565_PROJ_0.dir/flags.make | 8 + .../CMakeFiles/CIS565_PROJ_0.dir/link.txt | 1 + .../CIS565_PROJ_0.dir/progress.make | 5 + .../CIS565_PROJ_0_generated_kernel.cu.o.cmake | 296 + ...CIS565_PROJ_0_generated_kernel.cu.o.depend | 246 + .../CMakeDirectoryInformation.cmake | 16 + PROJ0_MAC/CMakeFiles/CMakeOutput.log | 192 + PROJ0_MAC/CMakeFiles/CMakeRuleHashes.txt | 3 + PROJ0_MAC/CMakeFiles/Makefile.cmake | 81 + PROJ0_MAC/CMakeFiles/Makefile2 | 99 + PROJ0_MAC/CMakeFiles/TargetDirectories.txt | 1 + PROJ0_MAC/CMakeFiles/cmake.check_cache | 1 + PROJ0_MAC/CMakeFiles/progress.marks | 1 + PROJ0_MAC/Makefile | 194 + PROJ0_MAC/cmake_install.cmake | 39 + PROJ0_WIN/CIS565_PROJ_0/CIS565_PROJ_0.sln | 40 +- .../CIS565_PROJ_0/CIS565_PROJ_0.vcxproj | 193 +- .../CIS565_PROJ_0.vcxproj.filters | 77 +- README.md | 250 +- external/include/GL/Copying.txt | 54 +- external/include/GL/LICENSE.txt | 146 +- external/include/GL/Readme.txt | 202 +- external/include/GL/freeglut.h | 44 +- external/include/GL/freeglut_ext.h | 478 +- external/include/GL/freeglut_std.h | 1260 +- external/include/GL/glew.h | 36124 ++++++++-------- external/include/GL/glut.h | 42 +- external/include/GL/glxew.h | 3338 +- external/include/GL/wglew.h | 2842 +- external/include/GLFW/COPYING.txt | 44 +- external/include/GLFW/glfw3.h | 4538 +- external/include/GLFW/glfw3native.h | 362 +- external/include/glslUtil/glslUtility.hpp | 32 +- external/src/glslUtil/glslUtility.cpp | 490 +- screenshot.tiff | Bin 0 -> 3030400 bytes src/kernel.cu | 144 +- src/kernel.h | 28 +- src/main.cpp | 574 +- src/main.hpp | 160 +- 65 files changed, 30605 insertions(+), 25858 deletions(-) create mode 100644 CMakeCache.txt create mode 100644 CMakeFiles/3.0.1/CMakeSystem.cmake create mode 100644 CMakeFiles/3.0.1/CompilerIdC/CMakeCCompilerId.c create mode 100644 CMakeFiles/3.0.1/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100644 CMakeFiles/CMakeError.log create mode 100644 CMakeFiles/CMakeOutput.log create mode 100644 CMakeFiles/cmake.check_cache create mode 100644 PROJ0_MAC/CIS565_PROJ_0 create mode 100644 PROJ0_MAC/CMakeCache.txt create mode 100644 PROJ0_MAC/CMakeFiles/3.0.1/CMakeCCompiler.cmake create mode 100644 PROJ0_MAC/CMakeFiles/3.0.1/CMakeCXXCompiler.cmake create mode 100644 PROJ0_MAC/CMakeFiles/3.0.1/CMakeDetermineCompilerABI_C.bin create mode 100644 PROJ0_MAC/CMakeFiles/3.0.1/CMakeDetermineCompilerABI_CXX.bin create mode 100644 PROJ0_MAC/CMakeFiles/3.0.1/CMakeSystem.cmake create mode 100644 PROJ0_MAC/CMakeFiles/3.0.1/CompilerIdC/CMakeCCompilerId.c create mode 100644 PROJ0_MAC/CMakeFiles/3.0.1/CompilerIdC/a.out create mode 100644 PROJ0_MAC/CMakeFiles/3.0.1/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100644 PROJ0_MAC/CMakeFiles/3.0.1/CompilerIdCXX/a.out create mode 100644 PROJ0_MAC/CMakeFiles/CIS565_PROJ_0.dir/CXX.includecache create mode 100644 PROJ0_MAC/CMakeFiles/CIS565_PROJ_0.dir/DependInfo.cmake create mode 100644 PROJ0_MAC/CMakeFiles/CIS565_PROJ_0.dir/build.make create mode 100644 PROJ0_MAC/CMakeFiles/CIS565_PROJ_0.dir/cmake_clean.cmake create mode 100644 PROJ0_MAC/CMakeFiles/CIS565_PROJ_0.dir/depend.internal create mode 100644 PROJ0_MAC/CMakeFiles/CIS565_PROJ_0.dir/depend.make create mode 100644 PROJ0_MAC/CMakeFiles/CIS565_PROJ_0.dir/flags.make create mode 100644 PROJ0_MAC/CMakeFiles/CIS565_PROJ_0.dir/link.txt create mode 100644 PROJ0_MAC/CMakeFiles/CIS565_PROJ_0.dir/progress.make create mode 100644 PROJ0_MAC/CMakeFiles/CIS565_PROJ_0.dir/src/CIS565_PROJ_0_generated_kernel.cu.o.cmake create mode 100644 PROJ0_MAC/CMakeFiles/CIS565_PROJ_0.dir/src/CIS565_PROJ_0_generated_kernel.cu.o.depend create mode 100644 PROJ0_MAC/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 PROJ0_MAC/CMakeFiles/CMakeOutput.log create mode 100644 PROJ0_MAC/CMakeFiles/CMakeRuleHashes.txt create mode 100644 PROJ0_MAC/CMakeFiles/Makefile.cmake create mode 100644 PROJ0_MAC/CMakeFiles/Makefile2 create mode 100644 PROJ0_MAC/CMakeFiles/TargetDirectories.txt create mode 100644 PROJ0_MAC/CMakeFiles/cmake.check_cache create mode 100644 PROJ0_MAC/CMakeFiles/progress.marks create mode 100644 PROJ0_MAC/Makefile create mode 100644 PROJ0_MAC/cmake_install.cmake create mode 100644 screenshot.tiff diff --git a/.gitignore b/.gitignore index e5faee7..f7a94cd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,35 +1,35 @@ -# General -builds/ - -# Compiled objects -*.o -*.obj - -# Compiled dynamic libraries -*.dll -*.so - -# Compiled static libraries -*.lib - -# Windows specific -[Rr]elease/ -[Dd]ebug/ -*.suo -*.pdb -*.sdf -*.opensdf -*.user -*.deps -*.ipch - -# OSX specific -.DS_Store -*/.DS_Store - -# VIM swap files -*.swp - -# Exceptions -!external/lib/*/*.lib -!external/bin/* +# General +builds/ + +# Compiled objects +*.o +*.obj + +# Compiled dynamic libraries +*.dll +*.so + +# Compiled static libraries +*.lib + +# Windows specific +[Rr]elease/ +[Dd]ebug/ +*.suo +*.pdb +*.sdf +*.opensdf +*.user +*.deps +*.ipch + +# OSX specific +.DS_Store +*/.DS_Store + +# VIM swap files +*.swp + +# Exceptions +!external/lib/*/*.lib +!external/bin/* diff --git a/CMakeCache.txt b/CMakeCache.txt new file mode 100644 index 0000000..82ada69 --- /dev/null +++ b/CMakeCache.txt @@ -0,0 +1,298 @@ +# This is the CMakeCache file. +# For build in directory: /Users/jiaweiwang/Documents/CGGT/CIS565/Project-0 +# It was generated by CMake: /Volumes/cmake-3.0.1-Darwin64-universal/CMake.app/Contents/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Value Computed by CMake +CIS565_PROJ_0_BINARY_DIR:STATIC=/Users/jiaweiwang/Documents/CGGT/CIS565/Project-0 + +//Value Computed by CMake +CIS565_PROJ_0_SOURCE_DIR:STATIC=/Users/jiaweiwang/Documents/CGGT/CIS565/Project-0 + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or +// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. +CMAKE_BUILD_TYPE:STRING= + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler. +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/clang++ + +//C compiler. +CMAKE_C_COMPILER:FILEPATH=/usr/bin/clang + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_C_FLAGS_MINSIZEREL:STRING= + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING= + +//Flags used by the compiler during release builds with debug info. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING= + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING=' ' + +//Flags used by the linker during debug builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//Path to a program. +CMAKE_INSTALL_NAME_TOOL:FILEPATH=/usr/bin/install_name_tool + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING=' ' + +//Flags used by the linker during debug builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=CMAKE_OBJCOPY-NOTFOUND + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=CMAKE_OBJDUMP-NOTFOUND + +//Build architectures for OSX +CMAKE_OSX_ARCHITECTURES:STRING= + +//Minimum OS X version to target for deployment (at runtime); newer +// APIs weak linked. Set to empty string for default value. +CMAKE_OSX_DEPLOYMENT_TARGET:STRING= + +//The product will be built against the headers and libraries located +// inside the indicated SDK. +CMAKE_OSX_SYSROOT:STRING= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=CIS565_PROJ_0 + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING=' ' + +//Flags used by the linker during debug builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If true, cmake will use relative paths in makefiles and projects. +CMAKE_USE_RELATIVE_PATHS:BOOL=OFF + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/Users/jiaweiwang/Documents/CGGT/CIS565/Project-0 +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=0 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=1 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/Volumes/cmake-3.0.1-Darwin64-universal/CMake.app/Contents/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/Volumes/cmake-3.0.1-Darwin64-universal/CMake.app/Contents/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/Volumes/cmake-3.0.1-Darwin64-universal/CMake.app/Contents/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Path to cache edit program executable. +CMAKE_EDIT_COMMAND:INTERNAL=/Volumes/cmake-3.0.1-Darwin64-universal/CMake.app/Contents/bin/cmake-gui +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=Unknown +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Start directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/Users/jiaweiwang/Documents/CGGT/CIS565/Project-0 +//ADVANCED property for variable: CMAKE_INSTALL_NAME_TOOL +CMAKE_INSTALL_NAME_TOOL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_LOCAL_GENERATORS:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/Volumes/cmake-3.0.1-Darwin64-universal/CMake.app/Contents/share/cmake-3.0 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//Suppress Warnings that are meant for the author of the CMakeLists.txt +// files. +CMAKE_SUPPRESS_DEVELOPER_WARNINGS:INTERNAL=FALSE +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_USE_RELATIVE_PATHS +CMAKE_USE_RELATIVE_PATHS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 + diff --git a/CMakeFiles/3.0.1/CMakeSystem.cmake b/CMakeFiles/3.0.1/CMakeSystem.cmake new file mode 100644 index 0000000..2806ef2 --- /dev/null +++ b/CMakeFiles/3.0.1/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Darwin-13.1.0") +set(CMAKE_HOST_SYSTEM_NAME "Darwin") +set(CMAKE_HOST_SYSTEM_VERSION "13.1.0") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Darwin-13.1.0") +set(CMAKE_SYSTEM_NAME "Darwin") +set(CMAKE_SYSTEM_VERSION "13.1.0") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/CMakeFiles/3.0.1/CompilerIdC/CMakeCCompilerId.c b/CMakeFiles/3.0.1/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000..bd1f7d1 --- /dev/null +++ b/CMakeFiles/3.0.1/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,442 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__clang__) +# if defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) +# else +# define COMPILER_ID "Clang" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC(__WATCOMC__ % 100) + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_C = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) +# if defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# else +# if __IBMC__ >= 800 +# define COMPILER_ID "XL" +# else +# define COMPILER_ID "VisualAge" +# endif + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +/* Analog VisualDSP++ >= 4.5.6 */ +#elif defined(__VISUALDSPVERSION__) +# define COMPILER_ID "ADSP" + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) + +/* Analog VisualDSP++ < 4.5.6 */ +#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" + +/* IAR Systems compiler for embedded systems. + http://www.iar.com */ +#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" + +/* sdcc, the small devices C compiler for embedded systems, + http://sdcc.sourceforge.net */ +#elif defined(SDCC) +# define COMPILER_ID "SDCC" + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + +/* This compiler is either not known or is too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" + +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto"; +#endif + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#else /* unknown platform */ +# define PLATFORM_ID "" + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM) +# define ARCHITECTURE_ID "ARM" + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID "" +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif + (void)argv; + return require; +} +#endif diff --git a/CMakeFiles/3.0.1/CompilerIdCXX/CMakeCXXCompilerId.cpp b/CMakeFiles/3.0.1/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..a315c6a --- /dev/null +++ b/CMakeFiles/3.0.1/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,430 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__clang__) +# if defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) +# else +# define COMPILER_ID "Clang" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC(__WATCOMC__ % 100) + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) +# if defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# else +# if __IBMCPP__ >= 800 +# define COMPILER_ID "XL" +# else +# define COMPILER_ID "VisualAge" +# endif + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +/* Analog VisualDSP++ >= 4.5.6 */ +#elif defined(__VISUALDSPVERSION__) +# define COMPILER_ID "ADSP" + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) + +/* Analog VisualDSP++ < 4.5.6 */ +#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" + +/* IAR Systems compiler for embedded systems. + http://www.iar.com */ +#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + +/* This compiler is either not known or is too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" + +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto"; +#endif + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#else /* unknown platform */ +# define PLATFORM_ID "" + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM) +# define ARCHITECTURE_ID "ARM" + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID "" +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif + (void)argv; + return require; +} diff --git a/CMakeFiles/CMakeError.log b/CMakeFiles/CMakeError.log new file mode 100644 index 0000000..cf7a07f --- /dev/null +++ b/CMakeFiles/CMakeError.log @@ -0,0 +1,61 @@ +Compiling the C compiler identification source file "CMakeCCompilerId.c" failed. +Compiler: /usr/bin/clang +Build flags: +Id flags: + +The output was: +1 +xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools. + + +Compiling the C compiler identification source file "CMakeCCompilerId.c" failed. +Compiler: /usr/bin/clang +Build flags: +Id flags: -c + +The output was: +1 +xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools. + + +Compiling the C compiler identification source file "CMakeCCompilerId.c" failed. +Compiler: /usr/bin/clang +Build flags: +Id flags: -Aa + +The output was: +1 +xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools. + + +Checking whether the C compiler is IAR using "" did not match "IAR .+ Compiler": +xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools. +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed. +Compiler: /usr/bin/clang++ +Build flags: +Id flags: + +The output was: +1 +xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools. + + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed. +Compiler: /usr/bin/clang++ +Build flags: +Id flags: -c + +The output was: +1 +xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools. + + +Checking whether the CXX compiler is IAR using "" did not match "IAR .+ Compiler": +xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools. +Determining if the C compiler works failed with the following output: +Change Dir: /Users/jiaweiwang/Documents/CGGT/CIS565/Project-0/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTryCompileExec3627796101/fast" +xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools. + + diff --git a/CMakeFiles/CMakeOutput.log b/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000..26074e5 --- /dev/null +++ b/CMakeFiles/CMakeOutput.log @@ -0,0 +1 @@ +The system is: Darwin - 13.1.0 - x86_64 diff --git a/CMakeFiles/cmake.check_cache b/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/CMakeLists.txt b/CMakeLists.txt index b907822..7c24e57 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,95 +1,95 @@ -cmake_minimum_required(VERSION 3.0.0) - -#on OSX we have to explicitly set clang/clang++ -set (CMAKE_C_COMPILER clang) -set (CMAKE_CXX_COMPILER clang++) - -project(CIS565_PROJ_0) - -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") - -#External libs location (alternatively, /usr/local or something) -set(EXTERNAL "external") - -#Set up include and lib paths -include_directories(${EXTERNAL}/include) -include_directories(${EXTERNAL}/src) -if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${EXTERNAL}/lib/osx) -elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") - set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${EXTERNAL}/lib/linux /usr/lib64) -elseif(WIN32) - set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${EXTERNAL}/lib/win) -endif() - -set(GLFW_INCLUDE_DIR ${EXTERNAL}/include) -set(GLFW_LIBRARY_DIR ${CMAKE_LIBRARY_PATH}) -set(GLEW_INCLUDE_DIR ${EXTERNAL}/include) -set(GLEW_LIBRARY_DIR ${CMAKE_LIBRARY_PATH}) - -#Find up and set up core dependency libs -find_library(GLFW_LIBRARY "glfw3" HINTS ${GLFW_LIBRARY_DIR}) -find_package(GLUT) -find_package(OPENGL) -find_package(GLEW) - -set(CORELIBS ${GLFW_LIBRARY} ${GLUT_LIBRARY} ${OPENGL_LIBRARY} ${GLEW_LIBRARY}) - -#OSX-specific hacks/fixes -if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - #Link IOKit because this is where we get GL stuff for OSX - set(IOKIT "-framework IOKit") - set(CORELIBS ${CORELIBS} ${IOKIT}) - #Link against libstdc++ since CUDA doesn't support libc++ yet - set(CUDA_NVCC_FLAGS "--compiler-options;-stdlib=libstdc++;") -endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - -#Linux specific hacks/fixes -if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lX11 -lXxf86vm -lXrandr -lpthread -lXi") -endif() - -#Compiler flag magic -if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -m64 -msse2 -stdlib=libstdc++") -elseif(WIN32) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") -endif() - -#Crucial magic for CUDA linking -find_package(CUDA REQUIRED) -set(CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE ON) - -set(CUDA_SEPARABLE_COMPILATION ON) - -#Make NVCC run silently -if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS}-w;") -endif() - -#Force Visual Studio to link against MT versions of libs -if(MSVC) - set(CompilerFlags - CMAKE_CXX_FLAGS - CMAKE_CXX_FLAGS_DEBUG - CMAKE_CXX_FLAGS_RELEASE - CMAKE_C_FLAGS - CMAKE_C_FLAGS_DEBUG - CMAKE_C_FLAGS_RELEASE - ) - foreach(CompilerFlag ${CompilerFlags}) - string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}") - endforeach() - set(CUDA_NVCC_FLAGS_RELEASE ${CUDA_NVCC_FLAGS_RELEASE} "--compiler-options /MT; --linker-options /MT") - set(CUDA_NVCC_FLAGS_DEBUG ${CUDA_NVCC_FLAGS_DEBUG} "--compiler-options /MT; --linker-options /MT") -endif() - -#Add all source files. Headers don't need to be listed here since the compiler will find them; -#we just need the actual files being fed directly to the compiler -set(SOURCE_FILES "src/main.cpp") -set(SOURCE_FILES ${SOURCE_FILES} "src/kernel.cu") -set(SOURCE_FILES ${SOURCE_FILES} "${EXTERNAL}/src/glslUtil/glslUtility.cpp") - -cuda_add_executable(CIS565_PROJ_0 ${SOURCE_FILES} OPTIONS -arch=sm_20) - -target_link_libraries(CIS565_PROJ_0 ${CORELIBS}) +cmake_minimum_required(VERSION 3.0.0) + +#on OSX we have to explicitly set clang/clang++ +set (CMAKE_C_COMPILER clang) +set (CMAKE_CXX_COMPILER clang++) + +project(CIS565_PROJ_0) + +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") + +#External libs location (alternatively, /usr/local or something) +set(EXTERNAL "external") + +#Set up include and lib paths +include_directories(${EXTERNAL}/include) +include_directories(${EXTERNAL}/src) +if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${EXTERNAL}/lib/osx) +elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") + set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${EXTERNAL}/lib/linux /usr/lib64) +elseif(WIN32) + set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${EXTERNAL}/lib/win) +endif() + +set(GLFW_INCLUDE_DIR ${EXTERNAL}/include) +set(GLFW_LIBRARY_DIR ${CMAKE_LIBRARY_PATH}) +set(GLEW_INCLUDE_DIR ${EXTERNAL}/include) +set(GLEW_LIBRARY_DIR ${CMAKE_LIBRARY_PATH}) + +#Find up and set up core dependency libs +find_library(GLFW_LIBRARY "glfw3" HINTS ${GLFW_LIBRARY_DIR}) +find_package(GLUT) +find_package(OPENGL) +find_package(GLEW) + +set(CORELIBS ${GLFW_LIBRARY} ${GLUT_LIBRARY} ${OPENGL_LIBRARY} ${GLEW_LIBRARY}) + +#OSX-specific hacks/fixes +if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + #Link IOKit because this is where we get GL stuff for OSX + set(IOKIT "-framework IOKit") + set(CORELIBS ${CORELIBS} ${IOKIT}) + #Link against libstdc++ since CUDA doesn't support libc++ yet + set(CUDA_NVCC_FLAGS "--compiler-options;-stdlib=libstdc++;") +endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + +#Linux specific hacks/fixes +if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lX11 -lXxf86vm -lXrandr -lpthread -lXi") +endif() + +#Compiler flag magic +if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -m64 -msse2 -stdlib=libstdc++") +elseif(WIN32) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") +endif() + +#Crucial magic for CUDA linking +find_package(CUDA REQUIRED) +set(CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE ON) + +set(CUDA_SEPARABLE_COMPILATION ON) + +#Make NVCC run silently +if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS}-w;") +endif() + +#Force Visual Studio to link against MT versions of libs +if(MSVC) + set(CompilerFlags + CMAKE_CXX_FLAGS + CMAKE_CXX_FLAGS_DEBUG + CMAKE_CXX_FLAGS_RELEASE + CMAKE_C_FLAGS + CMAKE_C_FLAGS_DEBUG + CMAKE_C_FLAGS_RELEASE + ) + foreach(CompilerFlag ${CompilerFlags}) + string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}") + endforeach() + set(CUDA_NVCC_FLAGS_RELEASE ${CUDA_NVCC_FLAGS_RELEASE} "--compiler-options /MT; --linker-options /MT") + set(CUDA_NVCC_FLAGS_DEBUG ${CUDA_NVCC_FLAGS_DEBUG} "--compiler-options /MT; --linker-options /MT") +endif() + +#Add all source files. Headers don't need to be listed here since the compiler will find them; +#we just need the actual files being fed directly to the compiler +set(SOURCE_FILES "src/main.cpp") +set(SOURCE_FILES ${SOURCE_FILES} "src/kernel.cu") +set(SOURCE_FILES ${SOURCE_FILES} "${EXTERNAL}/src/glslUtil/glslUtility.cpp") + +cuda_add_executable(CIS565_PROJ_0 ${SOURCE_FILES} OPTIONS -arch=sm_20) + +target_link_libraries(CIS565_PROJ_0 ${CORELIBS}) diff --git a/PROJ0_MAC/CIS565_PROJ_0 b/PROJ0_MAC/CIS565_PROJ_0 new file mode 100644 index 0000000000000000000000000000000000000000..d874d7788db80184bc6916f6bc30e2310a5a4fcc GIT binary patch literal 630564 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