INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/src ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})

SET(ngcs_srcs
	initng_ngcs.c
	ngcs_common.c
	initng_ngcs_cmds.c
	ngcs_marshal.c
)

ADD_LIBRARY(ngcs_common SHARED ngcs_common.c)
SET_TARGET_PROPERTIES(ngcs_common PROPERTIES VERSION 0.0.0 SOVERSION 0)
INSTALL_TARGETS(${LIB_INSTALL_DIR} ngcs_common)

ADD_LIBRARY(ngcs_client SHARED ngcs_client.c ngcs_marshal.c)
TARGET_LINK_LIBRARIES(ngcs_client ngcs_common)
SET_TARGET_PROPERTIES(ngcs_client PROPERTIES VERSION 0.0.0 SOVERSION 0)
INSTALL_TARGETS(${LIB_INSTALL_DIR} ngcs_client)

ADD_LIBRARY(ngcs MODULE ${ngcs_srcs})
TARGET_LINK_LIBRARIES(ngcs initng ngcs_common)
INSTALL_TARGETS(${LIB_INSTALL_DIR}/initng ngcs)

ADD_EXECUTABLE(ngcs_bin ngcs.c)
TARGET_LINK_LIBRARIES(ngcs_bin ngcs_client)
SET_TARGET_PROPERTIES(ngcs_bin PROPERTIES OUTPUT_NAME ngcs)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/create_links.cmake.in
	${CMAKE_CURRENT_BINARY_DIR}/create_links.cmake @ONLY)
SET_TARGET_PROPERTIES(ngcs_bin PROPERTIES POST_INSTALL_SCRIPT
	${CMAKE_CURRENT_BINARY_DIR}/create_links.cmake)
INSTALL_TARGETS(${SBIN_INSTALL_DIR} ngcs_bin)


ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ngcs_marshal.c
	COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/idef.py
	ARGS ${CMAKE_CURRENT_SOURCE_DIR}/ngcs_marshal ${CMAKE_CURRENT_BINARY_DIR}/ngcs_marshal.c
	DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/idef.py ${CMAKE_CURRENT_SOURCE_DIR}/ngcs_marshal.ngci)

SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${CMAKE_CURRENT_BINARY_DIR}/ngcs_marshal.h)
