mirror of https://github.com/kgabis/parson.git
parent
2bfa4153db
commit
d47474f2d5
@ -0,0 +1,29 @@ |
|||||||
|
cmake_minimum_required (VERSION 2.8) |
||||||
|
|
||||||
|
project (libparson) |
||||||
|
|
||||||
|
include (version.cmake.in) |
||||||
|
|
||||||
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -std=c89 -pedantic-errors") |
||||||
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra") |
||||||
|
|
||||||
|
include_directories (${PROJECT_SOURCE_DIR}) |
||||||
|
|
||||||
|
add_library (parson SHARED parson.c) |
||||||
|
|
||||||
|
set_target_properties (parson PROPERTIES |
||||||
|
SOVERSION ${so_version} |
||||||
|
VERSION ${PARSON_VERSION} |
||||||
|
) |
||||||
|
|
||||||
|
install (FILES parson.h DESTINATION include/parson) |
||||||
|
install (TARGETS parson DESTINATION lib) |
||||||
|
|
||||||
|
add_custom_target (uninstall |
||||||
|
COMMAND ${CMAKE_COMMAND} -E remove |
||||||
|
`cat ${PROJECT_BINARY_DIR}/install_manifest.txt` |
||||||
|
) |
||||||
|
|
||||||
|
if (${CMAKE_BUILD_TYPE} MATCHES Debug) |
||||||
|
include (test.cmake.in) |
||||||
|
endif () |
@ -0,0 +1,52 @@ |
|||||||
|
enable_testing () |
||||||
|
|
||||||
|
add_executable (test-c-standalone EXCLUDE_FROM_ALL tests.c parson.c) |
||||||
|
|
||||||
|
add_executable (test-c-linked EXCLUDE_FROM_ALL tests.c) |
||||||
|
target_link_libraries (test-c-linked parson) |
||||||
|
|
||||||
|
add_custom_command ( |
||||||
|
OUTPUT tests.cxx |
||||||
|
COMMAND ${CMAKE_COMMAND} -E create_symlink |
||||||
|
${PROJECT_SOURCE_DIR}/tests |
||||||
|
${PROJECT_BINARY_DIR}/tests |
||||||
|
COMMAND ${CMAKE_COMMAND} -E create_symlink |
||||||
|
${PROJECT_SOURCE_DIR}/tests.c |
||||||
|
${PROJECT_BINARY_DIR}/tests.cxx |
||||||
|
) |
||||||
|
|
||||||
|
add_executable (test-cxx-standalone EXCLUDE_FROM_ALL tests.cxx parson.c) |
||||||
|
|
||||||
|
add_executable (test-cxx-linked EXCLUDE_FROM_ALL tests.cxx) |
||||||
|
target_link_libraries (test-cxx-linked parson) |
||||||
|
|
||||||
|
add_test (test-c-standalone-build |
||||||
|
${CMAKE_COMMAND} --build ${PROJECT_BINARY_DIR} |
||||||
|
--target test-c-standalone |
||||||
|
) |
||||||
|
|
||||||
|
add_test (test-cxx-standalone-build |
||||||
|
${CMAKE_COMMAND} --build ${PROJECT_BINARY_DIR} |
||||||
|
--target test-cxx-standalone |
||||||
|
) |
||||||
|
|
||||||
|
add_test (test-c-linked-build |
||||||
|
${CMAKE_COMMAND} --build ${PROJECT_BINARY_DIR} |
||||||
|
--target test-c-linked |
||||||
|
) |
||||||
|
|
||||||
|
add_test (test-cxx-linked-build |
||||||
|
${CMAKE_COMMAND} --build ${PROJECT_BINARY_DIR} |
||||||
|
--target test-cxx-linked |
||||||
|
) |
||||||
|
|
||||||
|
add_test (test-c-standalone-run test-c-standalone) |
||||||
|
add_test (test-cxx-standalone-run test-cxx-standalone) |
||||||
|
add_test (test-c-linked-run test-c-linked) |
||||||
|
add_test (test-cxx-linked-run test-cxx-linked) |
||||||
|
|
||||||
|
add_custom_command (TARGET parson |
||||||
|
POST_BUILD |
||||||
|
COMMAND ${CMAKE_COMMAND} --build ${PROJECT_BINARY_DIR} |
||||||
|
--target test |
||||||
|
) |
@ -0,0 +1,28 @@ |
|||||||
|
# from pacakge.json |
||||||
|
set (PARSON_VERSION 0.0.0 CACHE STRING "set library version") |
||||||
|
|
||||||
|
if (PARSON_VERSION STREQUAL 0.0.0) |
||||||
|
execute_process ( |
||||||
|
COMMAND git rev-parse --short HEAD |
||||||
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} |
||||||
|
OUTPUT_VARIABLE git_rev |
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE |
||||||
|
ERROR_VARIABLE git_err |
||||||
|
) |
||||||
|
|
||||||
|
if (git_err) |
||||||
|
message (FATAL_ERROR |
||||||
|
"${git_err}" |
||||||
|
"*** Please define PARSON_VERSION ***\n" |
||||||
|
) |
||||||
|
endif () |
||||||
|
|
||||||
|
set (PARSON_VERSION ${PARSON_VERSION}.${git_rev}) |
||||||
|
endif () |
||||||
|
|
||||||
|
string (REPLACE "." ";" version_list ${PARSON_VERSION}) |
||||||
|
|
||||||
|
list (GET version_list 0 so_version) |
||||||
|
|
||||||
|
message (STATUS "set SOVERSION to ${so_version}") |
||||||
|
message (STATUS "set VERSION to ${PARSON_VERSION}") |
Loading…
Reference in new issue