Brian Waters | 13d9601 | 2017-12-08 16:53:31 -0600 | [diff] [blame^] | 1 | # The subproject name |
| 2 | Project("freeDiameter core library" C) |
| 3 | |
| 4 | # Configuration for newer cmake |
| 5 | cmake_policy(VERSION 2.6) |
| 6 | if (POLICY CMP0022) |
| 7 | cmake_policy(SET CMP0022 OLD) |
| 8 | endif (POLICY CMP0022) |
| 9 | |
| 10 | # Configuration parser |
| 11 | BISON_FILE(fdd.y) |
| 12 | FLEX_FILE(fdd.l) |
| 13 | SET_SOURCE_FILES_PROPERTIES(lex.fdd.c fdd.tab.c PROPERTIES COMPILE_FLAGS "-I ${CMAKE_CURRENT_SOURCE_DIR}") |
| 14 | |
| 15 | # List of source files |
| 16 | SET(FDCORE_SRC |
| 17 | fdcore-internal.h |
| 18 | apps.c |
| 19 | cnxctx.h |
| 20 | config.c |
| 21 | core.c |
| 22 | cnxctx.c |
| 23 | endpoints.c |
| 24 | events.c |
| 25 | extensions.c |
| 26 | fifo_stats.c |
| 27 | hooks.c |
| 28 | dict_base_proto.c |
| 29 | messages.c |
| 30 | queues.c |
| 31 | peers.c |
| 32 | p_ce.c |
| 33 | p_cnx.c |
| 34 | p_dw.c |
| 35 | p_dp.c |
| 36 | p_expiry.c |
| 37 | p_out.c |
| 38 | p_psm.c |
| 39 | p_sr.c |
| 40 | routing_dispatch.c |
| 41 | server.c |
| 42 | tcp.c |
| 43 | version.c |
| 44 | ) |
| 45 | |
| 46 | IF(NOT DISABLE_SCTP) |
| 47 | SET(FDCORE_SRC ${FDCORE_SRC} sctp.c sctp3436.c) |
| 48 | ENDIF(NOT DISABLE_SCTP) |
| 49 | |
| 50 | SET(FDCORE_GEN_SRC |
| 51 | lex.fdd.c |
| 52 | fdd.tab.c |
| 53 | fdd.tab.h |
| 54 | ) |
| 55 | |
| 56 | # Save the list of files for the tests |
| 57 | SET(FDCORE_SRC ${FDCORE_SRC} PARENT_SCOPE) |
| 58 | SET(FDCORE_GEN_SRC ${FDCORE_GEN_SRC} PARENT_SCOPE) |
| 59 | |
| 60 | # Include path |
| 61 | INCLUDE_DIRECTORIES(${LFDCORE_INCLUDES}) |
| 62 | INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) |
| 63 | |
| 64 | # Build the executable |
| 65 | ADD_LIBRARY(libfdcore SHARED ${FDCORE_SRC} ${FDCORE_GEN_SRC}) |
| 66 | ADD_DEPENDENCIES(libfdcore version_information) |
| 67 | |
| 68 | # Avoid the liblib name, and set the version |
| 69 | SET_TARGET_PROPERTIES(libfdcore PROPERTIES |
| 70 | OUTPUT_NAME "fdcore" |
| 71 | SOVERSION ${FD_PROJECT_VERSION_API} |
| 72 | VERSION ${FD_PROJECT_VERSION_MAJOR}.${FD_PROJECT_VERSION_MINOR}.${FD_PROJECT_VERSION_REV} |
| 73 | LINK_INTERFACE_LIBRARIES "${LFDCORE_LINK_INTERFACES}") |
| 74 | |
| 75 | # The library itself needs other libraries |
| 76 | LINK_DIRECTORIES(${CURRENT_BINARY_DIR}/../libfdproto) |
| 77 | TARGET_LINK_LIBRARIES(libfdcore libfdproto ${LFDCORE_LIBS}) |
| 78 | |
| 79 | |
| 80 | #### |
| 81 | ## INSTALL section ## |
| 82 | |
| 83 | INSTALL(TARGETS libfdcore |
| 84 | LIBRARY DESTINATION ${INSTALL_LIBRARY_SUFFIX} |
| 85 | COMPONENT freeDiameter-common) |