60 lines
1.5 KiB
CMake
60 lines
1.5 KiB
CMake
cmake_minimum_required(VERSION 2.6)
|
|
project(mpack)
|
|
|
|
include(CTest)
|
|
|
|
set(MPACK_MAJOR 0)
|
|
set(MPACK_MINOR 3)
|
|
|
|
# mpack features
|
|
set(MPACK_READER 1)
|
|
set(MPACK_EXPECT 1)
|
|
set(MPACK_NODE 1)
|
|
set(MPACK_WRITER 1)
|
|
# mpack dependencies
|
|
set(MPACK_STDLIB 1)
|
|
set(MPACK_STDIO 1)
|
|
set(MPACK_SETJMP 1)
|
|
# mpack miscellaneous
|
|
set(MPACK_STACK_SIZE 4096)
|
|
set(MPACK_BUFFER_SIZE 4096)
|
|
set(MPACK_NODE_ARRAY_STARTING_SIZE 32)
|
|
set(MPACK_NODE_MAX_DEPTH 2048)
|
|
|
|
# compiler options
|
|
set(CMAKE_C_FLAGS "-Wall -Wextra -Werror -std=c99")
|
|
|
|
include_directories(
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/src"
|
|
"${CMAKE_BINARY_DIR}/src"
|
|
)
|
|
|
|
# miscellaneous
|
|
set(MPACK_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/mpack")
|
|
set(MPACK_INC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src" CACHE INTERNAL "mpack include directory")
|
|
set(MPACK_DOC_DIR "${CMAKE_CURRENT_BINARY_DIR}/docs")
|
|
|
|
# TODO disabled for now, load cmake packages
|
|
#find_package(Doxygen)
|
|
if(DOXYGEN_FOUND)
|
|
file(MAKE_DIRECTORY "${MPACK_DOC_DIR}")
|
|
configure_file (
|
|
"Doxyfile.in"
|
|
"${MPACK_DOC_DIR}/Doxyfile"
|
|
)
|
|
# Add ALL after doc to generate docs after compilation
|
|
add_custom_target(doc
|
|
${DOXYGEN_EXECUTABLE} ${MPACK_DOC_DIR}/Doxyfile
|
|
WORKING_DIRECTORY ${CMAKE_DOC_DIR}
|
|
COMMENT "Generating API documentation with Doxygen" VERBATIM
|
|
)
|
|
endif(DOXYGEN_FOUND)
|
|
|
|
# valgrind
|
|
find_program( MEMORYCHECK_COMMAND valgrind )
|
|
set( MEMORYCHECK_COMMAND_OPTIONS "--trace-children=yes --leak-check=full" )
|
|
|
|
# include source and test folders
|
|
add_subdirectory("src")
|
|
add_subdirectory("test")
|