PROJECT(dadi C)

INCLUDE(UsePkgConfig)

INCLUDE_DIRECTORIES(include)
LINK_DIRECTORIES(lib)

EXEC_PROGRAM(cat ARGS ${CMAKE_SOURCE_DIR}/VERSION
	     OUTPUT_VARIABLE PACKAGE_VERSION)

#
# Targets
#
ADD_LIBRARY(dadi SHARED src/dadi.c src/dadi_snmp.c src/dadi_snmp_tables.c)
ADD_LIBRARY(mib SHARED src/mib.c)
ADD_LIBRARY(mib_perl SHARED wrapper/perl5/libmib_wrap.c)

ADD_CUSTOM_COMMAND(OUTPUT wrapper/perl5/libmib_perl.pm wrapper/perl5/libmib_wrap.c
	COMMAND swig ARGS -perl -Dinline= -v -I${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/wrapper/perl5/libmib.i)

#
# Build CFLAGS/LDFLAGS
#
FIND_LIBRARY(NETSNMPAGENT_LIB NAMES netsnmpagent PATHS  /usr/lib /usr/local/lib)
FIND_LIBRARY(NETSNMPHELPERS_LIB NAMES netsnmphelpers PATHS  /usr/lib /usr/local/lib)

EXEC_PROGRAM(net-snmp-config ARGS --libs
	     OUTPUT_VARIABLE NETSNMPCONFIG_LIBS)

EXEC_PROGRAM(perl ARGS -MExtUtils::Embed -e ldopts
	     OUTPUT_VARIABLE PERLEMBED_LIBS)

PKGCONFIG(tsp TCP_INCLUDE TSP_LIB TSP_LDFLAGS TSP_CFLAGS)

#
# Set flags to targets
#
TARGET_LINK_LIBRARIES (mib_perl ${NETSNMPAGENT_LIB} ${NETSNMPHELPERS_LIB}
	${NETSNMPCONFIG_LIBS} ${PERLEMBED_LIBS} ${TSP_LDFLAGS} dadi mib)
TARGET_LINK_LIBRARIES (mib ${NETSNMPAGENT_LIB} ${NETSNMPHELPERS_LIB}
	${NETSNMPCONFIG_LIBS} ${PERLEMBED_LIBS} ${TSP_LDFLAGS} dadi)
SET_TARGET_PROPERTIES(dadi PROPERTIES COMPILE_FLAGS "${TSP_CFLAGS}")
SET_TARGET_PROPERTIES(mib PROPERTIES LINK_FLAGS "-Wl,-e,standalone_start")
SET_TARGET_PROPERTIES(mib PROPERTIES COMPILE_FLAGS "${TSP_CFLAGS}")
SET_TARGET_PROPERTIES(mib_perl PROPERTIES COMPILE_FLAGS "`perl -MExtUtils::Embed -e ccopts` ${TSP_CFLAGS}")

#
# Define install rules
#
INSTALL(DIRECTORY mibs
	DESTINATION share/)

INSTALL(FILES wrapper/perl5/libmib_perl.pm
	DESTINATION share/perl/5.8/)

INSTALL(TARGETS dadi mib mib_perl
	RUNTIME DESTINATION bin
	LIBRARY DESTINATION lib)
INSTALL(FILES include/dadi.h include/enums.h include/inlines_mib.h
	DESTINATION include)
#
# Packing instructions
#
SET(CPACK_SOURCE_IGNORE_FILES
	"CMakeFiles;\\\\.tar\\\\.gz$;/_CPack_Packages/;CMakeCache;\\\\.o$;\\\\.so$;/CVS/;/\\\\.svn/;\\\\.swp$;\\\\.#;/#;.*~;cscope.*")
SET(CPACK_GENERATOR "DEB;RPM")
SET(CPACK_PACKAGE_CONTACT "frederik.deweerdt@gmail.com")
SET(CPACK_PACKAGE_VERSION ${PACKAGE_VERSION})
SET(CPACK_SOURCE_PACKAGE_FILE_NAME ${PACKAGE_NAME}-${PACKAGE_VERSION})
SET(CPACK_PACKAGE_FILE_NAME "libdadi-${PACKAGE_VERSION}")

INCLUDE(CPack)
INCLUDE(UsePackageBackup)

