blob: 503437d8523e1350e8fca3c087c29d4c675a8251 [file] [log] [blame]
# The subproject name
Project("freeDiameter core library" C)
# Configuration for newer cmake
cmake_policy(VERSION 2.6)
if (POLICY CMP0022)
cmake_policy(SET CMP0022 OLD)
endif (POLICY CMP0022)
# Configuration parser
BISON_FILE(fdd.y)
FLEX_FILE(fdd.l)
SET_SOURCE_FILES_PROPERTIES(lex.fdd.c fdd.tab.c PROPERTIES COMPILE_FLAGS "-I ${CMAKE_CURRENT_SOURCE_DIR}")
# List of source files
SET(FDCORE_SRC
fdcore-internal.h
apps.c
cnxctx.h
config.c
core.c
cnxctx.c
endpoints.c
events.c
extensions.c
fifo_stats.c
hooks.c
dict_base_proto.c
messages.c
queues.c
peers.c
p_ce.c
p_cnx.c
p_dw.c
p_dp.c
p_expiry.c
p_out.c
p_psm.c
p_sr.c
routing_dispatch.c
server.c
tcp.c
version.c
)
IF(NOT DISABLE_SCTP)
SET(FDCORE_SRC ${FDCORE_SRC} sctp.c sctp3436.c)
ENDIF(NOT DISABLE_SCTP)
SET(FDCORE_GEN_SRC
lex.fdd.c
fdd.tab.c
fdd.tab.h
)
# Save the list of files for the tests
SET(FDCORE_SRC ${FDCORE_SRC} PARENT_SCOPE)
SET(FDCORE_GEN_SRC ${FDCORE_GEN_SRC} PARENT_SCOPE)
# Include path
INCLUDE_DIRECTORIES(${LFDCORE_INCLUDES})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
# Build the executable
ADD_LIBRARY(libfdcore SHARED ${FDCORE_SRC} ${FDCORE_GEN_SRC})
ADD_DEPENDENCIES(libfdcore version_information)
# Avoid the liblib name, and set the version
SET_TARGET_PROPERTIES(libfdcore PROPERTIES
OUTPUT_NAME "fdcore"
SOVERSION ${FD_PROJECT_VERSION_API}
VERSION ${FD_PROJECT_VERSION_MAJOR}.${FD_PROJECT_VERSION_MINOR}.${FD_PROJECT_VERSION_REV}
LINK_INTERFACE_LIBRARIES "${LFDCORE_LINK_INTERFACES}")
# The library itself needs other libraries
LINK_DIRECTORIES(${CURRENT_BINARY_DIR}/../libfdproto)
TARGET_LINK_LIBRARIES(libfdcore libfdproto ${LFDCORE_LIBS})
####
## INSTALL section ##
INSTALL(TARGETS libfdcore
LIBRARY DESTINATION ${INSTALL_LIBRARY_SUFFIX}
COMPONENT freeDiameter-common)