
include_directories( ${LLVM_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/  ${CMAKE_CURRENT_BINARY_DIR} )

# List of files 
set(OpenRijn_SRCS
  AbstractCanvas.cpp
  AbstractBrush.cpp
  AbstractFiller.cpp
  AbstractPalette.cpp
  Library.cpp
  LibrariesManager.cpp
  Path.cpp
  Sketch.cpp
  Source.cpp
  SourcesCollection.cpp
  Version.cpp
# ImageEngine
  ImageEngine/Canvas.cpp
  ImageEngine/Palette.cpp
  ImageEngine/ShapeBrush.cpp
  ImageEngine/ShapeGenerator.cpp
# Internal files
  LightParser_p.cpp
  Wrapper.cpp
  wrappers/BrushWrap_p.cpp
  wrappers/PaletteWrap_p.cpp
    )

# Add the OpenRIJN library for build
add_library(OpenRijn SHARED ${OpenRijn_SRCS})
target_link_libraries(OpenRijn GTLCore GTLFragment)

# __STDC_LIMIT_MACROS is needed by LLVM's DataTypes.h
add_definitions( "-D__STDC_LIMIT_MACROS" )
add_definitions( "-D__STDC_CONSTANT_MACROS" )
add_definitions( -DCOUMPONENT_NAME="OpenRijn" )

add_definitions( -D_OPENRIJN_LIB_="libOpenRijn.so.${OPENGTL_VERSION}")
add_definitions( -D_OPENRIJN_RIJN_STD_LIB_SRC_DIR_="${CMAKE_CURRENT_SOURCE_DIR}")
add_definitions( -D_OPENRIJN_RIJN_LIBRARIES_DIR_="${SHARE_INSTALL_DIR}/rijn/libraries" )
add_definitions( -D_OPENRIJN_RIJN_KERNELS_DIR_="${SHARE_INSTALL_DIR}/rijn/sketches" )


# Set the ABI version of the library
set_target_properties(OpenRijn PROPERTIES VERSION ${OPENRIJN_LIB_VERSION} SOVERSION ${OPENRIJN_LIB_SOVERSION} )

# Install target
install(TARGETS OpenRijn ${INSTALL_TARGETS_DEFAULT_ARGS} )
install( FILES
  AbstractBrush.h
  AbstractCanvas.h
  AbstractFiller.h
  AbstractPalette.h
  DistanceInformation.h
  DrawingPoint.h
  Export.h
  Sketch.h
  Library.h
  Source.h
  SourcesCollection.h
  Version.h
  DESTINATION ${INCLUDE_INSTALL_DIR}/OpenRijn )
install( FILES
  ImageEngine/Canvas.h
  ImageEngine/Palette.h
  DESTINATION ${INCLUDE_INSTALL_DIR}/OpenRijn/ImageEngine )

# Create and install pc file
configure_file("OpenRijn.pc.cmake" "${CMAKE_CURRENT_BINARY_DIR}/OpenRijn.pc" @ONLY)

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/OpenRijn.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)

# Install standard library
install(FILES rijnstdlib.rijn rijnwrappers.rijn DESTINATION ${SHARE_INSTALL_DIR}/rijn/libraries )
