diff --git a/CMakeLists.txt b/CMakeLists.txt index f092c68..008cb46 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,47 @@ macro (add_sources) endif() endmacro() +macro (add_public_header) + file (RELATIVE_PATH _relPath "${PROJECT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}") + foreach (_src ${ARGN}) + if (_relPath) + list (APPEND KRAKEN_PUBLIC_HEADERS "${_relPath}/${_src}") + else() + list (APPEND KRAKEN_PUBLIC_HEADERS "${_src}") + endif() + endforeach() + if (_relPath) + # propagate KRAKEN_PUBLIC_HEADERS to parent directory + set (KRAKEN_PUBLIC_HEADERS ${KRAKEN_PUBLIC_HEADERS} PARENT_SCOPE) + endif() +endmacro() + +IF(APPLE) + # SET(GUI_TYPE MACOSX_BUNDLE) + # INCLUDE_DIRECTORIES ( /Developer/Headers/FlatCarbon ) + FIND_LIBRARY(OPENGL_LIBRARY OpenGL) + FIND_LIBRARY(AUDIO_TOOLBOX_LIBRARY AudioToolbox) + MARK_AS_ADVANCED (OPENGL_LIBRARY + AUDIO_TOOLBOX_LIBRARY) + SET(EXTRA_LIBS ${OPENGL_LIBRARY} ${AUDIO_TOOLBOX_LIBRARY}) + FIND_PATH(COCOA_INCLUDE_DIR OpenGL/gl3.h) +ENDIF (APPLE) add_subdirectory(kraken) -add_library(kraken ${SRCS}) +add_library(kraken STATIC ${SRCS} ${KRAKEN_PUBLIC_HEADERS}) + +TARGET_LINK_LIBRARIES( kraken ${EXTRA_LIBS} ) +SET_TARGET_PROPERTIES( + kraken +PROPERTIES + FRAMEWORK ON + SOVERSION 0 + VERSION 0.1.0 + PUBLIC_HEADER "${KRAKEN_PUBLIC_HEADERS}" + PRIVATE_HEADER "${PRIVATE_HEADER_FILES}" + ARCHIVE_OUTPUT_DIRECTORY "archive" + LIBRARY_OUTPUT_DIRECTORY "lib" + OUTPUT_NAME kraken +) + diff --git a/kraken/CMakeLists.txt b/kraken/CMakeLists.txt index 611de46..b5c964c 100644 --- a/kraken/CMakeLists.txt +++ b/kraken/CMakeLists.txt @@ -1,4 +1,8 @@ include_directories(public) +add_subdirectory(public) +set(KRAKEN_PUBLIC_HEADERS "${KRAKEN_PUBLIC_HEADERS}" PARENT_SCOPE) + +add_sources(scalar.cpp) add_sources(vector2.cpp) add_sources(vector3.cpp) add_sources(vector4.cpp) @@ -6,4 +10,3 @@ add_sources(triangle3.cpp) add_sources(quaternion.cpp) add_sources(matrix4.cpp) add_sources(aabb.cpp) - diff --git a/kraken/KRHelpers.h b/kraken/KRHelpers.h index 2cedb09..05a2468 100644 --- a/kraken/KRHelpers.h +++ b/kraken/KRHelpers.h @@ -7,6 +7,9 @@ #include #include #include +#elif defined(__APPLE__) +#include +#include #endif #include "../3rdparty/tinyxml2/tinyxml2.h" diff --git a/kraken/public/CMakeLists.txt b/kraken/public/CMakeLists.txt new file mode 100644 index 0000000..9a14fce --- /dev/null +++ b/kraken/public/CMakeLists.txt @@ -0,0 +1,10 @@ +add_public_header(kraken.h) +add_public_header(scalar.h) +add_public_header(vector2.h) +add_public_header(vector3.h) +add_public_header(vector4.h) +add_public_header(triangle3.h) +add_public_header(quaternion.h) +add_public_header(aabb.h) +add_public_header(matrix4.h) +set(KRAKEN_PUBLIC_HEADERS "${KRAKEN_PUBLIC_HEADERS}" PARENT_SCOPE) diff --git a/kraken/KRFloat.cpp b/kraken/scalar.cpp similarity index 67% rename from kraken/KRFloat.cpp rename to kraken/scalar.cpp index bb5317d..8b7a180 100755 --- a/kraken/KRFloat.cpp +++ b/kraken/scalar.cpp @@ -6,10 +6,14 @@ // Copyright (c) 2013 Kearwood Software. All rights reserved. // -#include "public\kraken.h" +#include "public/kraken.h" -float kraken::SmoothStep(float a, float b, float t) +namespace kraken { + +float SmoothStep(float a, float b, float t) { float d = (3.0 * t * t - 2.0 * t * t * t); return a * (1.0f - d) + b * d; } + +} // namespace kraken