From 2c4da9cf41f21f7ab8b7516d5a204f70e904a8a6 Mon Sep 17 00:00:00 2001 From: Dan Scott Date: Thu, 27 Oct 2011 18:32:49 -0400 Subject: [PATCH] Try CMake as an alternative to autotools A strong recommendation coming out of GSOC was to investigate CMake as a friendlier replacement for autoconf / automake. Thus... Signed-off-by: Dan Scott --- CMakeLists.txt | 53 +++++++++++++++++++++++++++++++++++++++ src/c-apps/CMakeLists.txt | 17 +++++++++++++ src/jserver/CMakeLists.txt | 8 ++++++ src/libopensrf/CMakeLists.txt | 58 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 136 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 src/c-apps/CMakeLists.txt create mode 100644 src/jserver/CMakeLists.txt create mode 100644 src/libopensrf/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..790f914 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,53 @@ +project (OpenSRF) + +cmake_minimum_required(VERSION 2.8) + +INCLUDE(FindLibXml2) +INCLUDE(FindPerl) +INCLUDE(FindPythonInterp) + +include_directories (include) +add_subdirectory (src/c-apps) +add_subdirectory (src/libopensrf) +add_subdirectory (src/jserver) + +set(prefix ${CMAKE_INSTALL_PREFIX}) +set(exec_prefix ${CMAKE_INSTALL_PREFIX}) +set(libdir ${CMAKE_INSTALL_PREFIX}/lib) +set(includedir ${CMAKE_INSTALL_PREFIX}/include) +set(CONF_DIR ${CMAKE_INSTALL_PREFIX}/conf) +set(PID_DIR ${CMAKE_INSTALL_PREFIX}/var) + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/bin/opensrf-perl.pl.in + ${CMAKE_CURRENT_SOURCE_DIR}/bin/opensrf-perl + @ONLY +) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/bin/osrf_config.in + ${CMAKE_CURRENT_SOURCE_DIR}/bin/opensrf-config +) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/bin/osrf_ctl.sh.in + ${CMAKE_CURRENT_SOURCE_DIR}/bin/opensrf-ctl +) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doc/dokuwiki-doc-stubber.pl.in + ${CMAKE_CURRENT_SOURCE_DIR}/doc/dokuwiki-doc-stubber.pl + @ONLY +) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/examples/simple_text.py.in + ${CMAKE_CURRENT_SOURCE_DIR}/examples/simple_text.py +) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/examples/multisession-test.pl.in + ${CMAKE_CURRENT_SOURCE_DIR}/examples/multisession-test.pl +) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/examples/math_client.py.in + ${CMAKE_CURRENT_SOURCE_DIR}/examples/math_client.py +) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/examples/math_xul_client/Makefile.in + ${CMAKE_CURRENT_SOURCE_DIR}/examples/math_xul_client/Makefile +) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/examples/math_bench.pl.in + ${CMAKE_CURRENT_SOURCE_DIR}/examples/math_bench.pl + @ONLY +) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/python/opensrf.py.in + ${CMAKE_CURRENT_SOURCE_DIR}/src/python/opensrf-python +) diff --git a/src/c-apps/CMakeLists.txt b/src/c-apps/CMakeLists.txt new file mode 100644 index 0000000..53e61b7 --- /dev/null +++ b/src/c-apps/CMakeLists.txt @@ -0,0 +1,17 @@ +include_directories(${LIBXML2_INCLUDE_DIR}) + +add_executable (timejson timejson.c) +add_dependencies (timejson opensrf) +target_link_libraries (timejson opensrf) + +add_library (osrf_dbmath MODULE osrf_dbmath.c) +add_dependencies (osrf_dbmath opensrf) +target_link_libraries (osrf_dbmath ${LIBXML2_LIBRARIES}) + +add_library (osrf_math MODULE osrf_math.c) +add_dependencies (osrf_math opensrf) +target_link_libraries (osrf_math ${LIBXML2_LIBRARIES}) + +add_library (osrf_version MODULE osrf_version.c) +add_dependencies (osrf_version opensrf) +target_link_libraries (osrf_version ${LIBXML2_LIBRARIES}) diff --git a/src/jserver/CMakeLists.txt b/src/jserver/CMakeLists.txt new file mode 100644 index 0000000..95fc78a --- /dev/null +++ b/src/jserver/CMakeLists.txt @@ -0,0 +1,8 @@ +add_executable(chopchop osrf_chat.c osrf_chat.h osrf_chat_main.c) +add_dependencies (chopchop opensrf) +target_link_libraries (chopchop opensrf ${LIBXML2_LIBRARIES}) +include_directories(${LIBXML2_INCLUDE_DIR}) + +set_target_properties (chopchop PROPERTIES + COMPILE_DEFINITIONS _GNU_SOURCE +) diff --git a/src/libopensrf/CMakeLists.txt b/src/libopensrf/CMakeLists.txt new file mode 100644 index 0000000..4aea0d1 --- /dev/null +++ b/src/libopensrf/CMakeLists.txt @@ -0,0 +1,58 @@ + +find_library (MEMCACHED memcached) + +add_executable (osrf_json_test + osrf_json_test.c + osrf_json_object.c + osrf_parse_json.c + osrf_json_tools.c + osrf_legacy_json.c + osrf_json_xml.c + osrf_list.c + osrf_hash.c + osrf_utf8.c + utils.c + log.c + md5.c + string_array.c +) + +add_library (opensrf SHARED + log.c + md5.c + osrf_application.c + osrf_app_session.c + osrf_cache.c + osrfConfig.c + osrf_hash.c + osrf_json_object.c + osrf_json_tools.c + osrf_json_xml.c + osrf_legacy_json.c + osrf_list.c + osrf_message.c + osrf_parse_json.c + osrf_prefork.c + osrf_settings.c + osrf_stack.c + osrf_system.c + osrf_transgroup.c + osrf_utf8.c + sha.c + socket_bundle.c + string_array.c + transport_client.c + transport_message.c + transport_session.c + utils.c + xml_utils.c +) + +target_link_libraries (opensrf memcached ${LIBXML2_LIBRARIES}) + +set_target_properties (opensrf PROPERTIES + COMPILE_DEFINITIONS ASSUME_STATELESS;OSRF_STRICT_PARAMS;OSRF_JSON_ENABLE_XML_UTILS +) + +include_directories(${LIBXML2_INCLUDE_DIR}) + -- 2.11.0