mirror of https://github.com/kgabis/parson.git
- Added CMake file to build and test the project Signed-off-by: Uilian Ries <uilianries@gmail.com>pull/92/head
parent
bef4969d25
commit
2434fc7e31
@ -0,0 +1,43 @@ |
|||||||
|
cmake_minimum_required(VERSION 2.8) |
||||||
|
project(parson) |
||||||
|
|
||||||
|
# Version ###################################################################### |
||||||
|
set(PARSON_VERSION_MAJOR 0) |
||||||
|
set(PARSON_VERSION_MINOR 0) |
||||||
|
set(PARSON_VERSION_PATCH 0) |
||||||
|
|
||||||
|
# Build Options ################################################################ |
||||||
|
option(BUILD_TESTS "Build unit tests" OFF) |
||||||
|
|
||||||
|
# Build library ################################################################ |
||||||
|
set(SOURCE_FILES ${CMAKE_SOURCE_DIR}/parson.c ${CMAKE_SOURCE_DIR}/parson.h) |
||||||
|
add_library(${CMAKE_PROJECT_NAME} ${SOURCE_FILES}) |
||||||
|
|
||||||
|
# Build options ################################################################ |
||||||
|
if(WIN32 AND MSVC AND BUILD_SHARED_LIBS) |
||||||
|
set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) |
||||||
|
endif(WIN32 AND MSVC AND BUILD_SHARED_LIBS) |
||||||
|
|
||||||
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") |
||||||
|
target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE -Wall -Wextra -std=c89 -pedantic-errors) |
||||||
|
endif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") |
||||||
|
|
||||||
|
# Install targets ############################################################## |
||||||
|
install(TARGETS ${CMAKE_PROJECT_NAME} |
||||||
|
ARCHIVE DESTINATION lib |
||||||
|
LIBRARY DESTINATION lib |
||||||
|
RUNTIME DESTINATION bin |
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE WORLD_READ) |
||||||
|
|
||||||
|
install(FILES parson.h DESTINATION include |
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE WORLD_READ) |
||||||
|
|
||||||
|
# Build and Execute Unit Test ################################################## |
||||||
|
if(BUILD_TESTS) |
||||||
|
enable_testing() |
||||||
|
|
||||||
|
set(TARGET_TEST test-all) |
||||||
|
add_executable(${TARGET_TEST} ${CMAKE_SOURCE_DIR}/tests.c) |
||||||
|
target_link_libraries(${TARGET_TEST} ${CMAKE_PROJECT_NAME}) |
||||||
|
add_test(NAME ${TARGET_TEST} COMMAND ${TARGET_TEST}) |
||||||
|
endif(BUILD_TESTS) |
Loading…
Reference in new issue