mirror of https://github.com/kgabis/parson.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.8 KiB
43 lines
1.8 KiB
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)
|
|
|