2017-10-04 17:14:29 -07:00
|
|
|
cmake_minimum_required (VERSION 2.6)
|
2017-10-04 18:00:01 -07:00
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
2017-10-04 17:14:29 -07:00
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
2017-10-05 14:31:51 -07:00
|
|
|
|
2017-10-05 16:32:27 -07:00
|
|
|
if (WIN32)
|
2017-10-05 21:52:47 -07:00
|
|
|
set(CMAKE_GENERATOR_PLATFORM "Visual Studio 15 2017 Win64")
|
2017-10-05 16:32:27 -07:00
|
|
|
else()
|
2017-10-05 14:31:51 -07:00
|
|
|
set(CMAKE_CXX_COMPILER "clang++")
|
|
|
|
|
endif()
|
|
|
|
|
|
2017-10-04 17:55:09 -07:00
|
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lc++abi")
|
2017-10-04 18:00:01 -07:00
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
2017-10-04 17:14:29 -07:00
|
|
|
|
|
|
|
|
project (Kraken)
|
|
|
|
|
|
|
|
|
|
macro (add_sources)
|
|
|
|
|
file (RELATIVE_PATH _relPath "${PROJECT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
|
|
|
foreach (_src ${ARGN})
|
|
|
|
|
if (_relPath)
|
|
|
|
|
list (APPEND SRCS "${_relPath}/${_src}")
|
|
|
|
|
else()
|
|
|
|
|
list (APPEND SRCS "${_src}")
|
|
|
|
|
endif()
|
|
|
|
|
endforeach()
|
|
|
|
|
if (_relPath)
|
|
|
|
|
# propagate SRCS to parent directory
|
|
|
|
|
set (SRCS ${SRCS} PARENT_SCOPE)
|
|
|
|
|
endif()
|
|
|
|
|
endmacro()
|
|
|
|
|
|
2017-10-04 21:21:29 -07:00
|
|
|
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)
|
2017-10-04 17:14:29 -07:00
|
|
|
|
|
|
|
|
add_subdirectory(kraken)
|
|
|
|
|
|
2017-10-04 21:21:29 -07:00
|
|
|
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
|
|
|
|
|
)
|
|
|
|
|
|