PROJECT(AQSISLIB)

INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR})
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/interfaces)
INCLUDE_DIRECTORIES(${AQSIS_BOOST_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${AQSIS_TIFF_INCLUDE_DIR})

# Internal dependencies
INCLUDE(${AQSISTYPES_SOURCE_DIR}/export.cmake)
INCLUDE(${RIBAPI_SOURCE_DIR}/export.cmake)
INCLUDE(${RIB2RI_SOURCE_DIR}/export.cmake)
INCLUDE(${RIB_SOURCE_DIR}/export.cmake)
INCLUDE(${SHADEREXECENV_SOURCE_DIR}/export.cmake)
INCLUDE(${SHADERVM_SOURCE_DIR}/export.cmake)
INCLUDE(${AQSISTEX_SOURCE_DIR}/export.cmake)

FILE(GLOB AQSISLIB_SRCS ${PROJECT_SOURCE_DIR}/*.cpp)
FILE(GLOB AQSISLIB_HDRS ${PROJECT_SOURCE_DIR}/*.h)

FILE(GLOB AQSISLIB_TEST_SRCS ${PROJECT_SOURCE_DIR}/*_test.cpp)

FILTER_OUT("${AQSISLIB_TEST_SRCS}" "${AQSISLIB_SRCS}" AQSISLIB_SRCS) 

INCLUDE(${RIB_SOURCE_DIR}/local.cmake)
INCLUDE(${RIB2RI_SOURCE_DIR}/local.cmake)
INCLUDE(${DDMANAGER_SOURCE_DIR}/local.cmake)
INCLUDE(${RAYTRACE_SOURCE_DIR}/local.cmake)

ADD_DEFINITIONS(-DRI_EXPORTS)
IF(AQSIS_ENABLE_MPDUMP)
	ADD_DEFINITIONS(-DENABLE_MPDUMP)
ENDIF(AQSIS_ENABLE_MPDUMP)

ADD_LIBRARY(aqsislib SHARED ${AQSISLIB_SRCS} ${AQSISLIB_HDRS} 
							${RIB_SRCS} ${RIB_HDRS} 
							${RIB2RI_SRCS} ${RIB2RI_HDRS} 
							${DDMANAGER_SRCS} ${DDMANAGER_HDRS} 
							${RAYTRACE_SRCS} ${RAYTRACE_HDRS}
							${INFORES_SRCS})
ADD_DEPENDENCIES(aqsislib apiheader apicache apivalidate apidebug ribparser)

SET(LINKLIBS ${AQSIS_TIFF_LIBRARIES} ${AQSIS_ZLIB_LIBRARIES} ${AQSISLIB_SYSTEM_LINKLIBS})
INCLUDE(${AQSISTYPES_SOURCE_DIR}/link.cmake)
INCLUDE(${SHADERVM_SOURCE_DIR}/link.cmake)
INCLUDE(${AQSISTEX_SOURCE_DIR}/link.cmake)
TARGET_LINK_LIBRARIES(aqsislib ${LINKLIBS})

SET_TARGET_PROPERTIES(aqsislib PROPERTIES OUTPUT_NAME "aqsis" SOVERSION ${MAJOR} VERSION "${MAJOR}.${MINOR}")

INSTALL(TARGETS aqsislib
	RUNTIME DESTINATION ${BINDIR}
	LIBRARY DESTINATION ${LIBDIR}
	ARCHIVE DESTINATION ${LIBDIR})

SOURCE_GROUP("Header Files" FILES ${AQSISLIB_HDRS} ${RIB_HDRS} ${RIB2RI_HDRS} ${DDMANAGER_HDRS} ${RAYTRACE_HDRS})
