include_directories(${CMAKE_SOURCE_DIR}/libcudf ${CMAKE_SOURCE_DIR}/libprogram_opts .)

set(cudf-libs cudf-lib program_opts-lib ${Boost_LIBRARIES})

add_executable(cudf-app main.cpp)
target_link_libraries(cudf-app ${cudf-libs})
set_target_properties(cudf-app PROPERTIES OUTPUT_NAME cudf2lp)

set(ENCODING_LOC "" CACHE STRING "optional to overwrite default path to encoding")
set(CUDF2LP_LOC  "" CACHE STRING "optional to overwrite default path to cudf2lp")
set(GRINGO_LOC   "" CACHE STRING "optional to overwrite default path to gringo")
set(CLASP_LOC    "" CACHE STRING "optional to overwrite default path to clasp")

if (CUDF2LP_LOC)
	set_property(SOURCE aspcud.c APPEND PROPERTY COMPILE_DEFINITIONS "ASPCUD_CUDF2LP_BIN=\"${CUDF2LP_LOC}\"")
else()
	set_property(SOURCE aspcud.c APPEND PROPERTY COMPILE_DEFINITIONS "ASPCUD_CUDF2LP_BIN=\"${CMAKE_INSTALL_PREFIX}/bin/cudf2lp\"")
endif()
if (GRINGO_LOC)
	set_property(SOURCE aspcud.c APPEND PROPERTY COMPILE_DEFINITIONS "ASPCUD_GRINGO_BIN=\"${GRINGO_LOC}\"")
else()
	set_property(SOURCE aspcud.c APPEND PROPERTY COMPILE_DEFINITIONS "ASPCUD_GRINGO_BIN=\"${CMAKE_INSTALL_PREFIX}/bin/gringo\"")
endif()
if (CLASP_LOC)
	set_property(SOURCE aspcud.c APPEND PROPERTY COMPILE_DEFINITIONS "ASPCUD_CLASP_BIN=\"${CLASP_LOC}\"")
else()
	set_property(SOURCE aspcud.c APPEND PROPERTY COMPILE_DEFINITIONS "ASPCUD_CLASP_BIN=\"${CMAKE_INSTALL_PREFIX}/bin/clasp\"")
endif()
if (ENCODING_LOC)
	set_property(SOURCE aspcud.c APPEND PROPERTY COMPILE_DEFINITIONS "ASPCUD_DEFAULT_ENCODING=\"${ENCODING_LOC}\"")
else()
	set_property(SOURCE aspcud.c APPEND PROPERTY COMPILE_DEFINITIONS "ASPCUD_DEFAULT_ENCODING=\"${CMAKE_INSTALL_PREFIX}/share/aspcud/misc2012.lp\"")
endif()

set_property(SOURCE main.cpp APPEND PROPERTY COMPILE_FLAGS "-ftemplate-depth=256")

add_executable(aspcud-app aspcud.c)
set_target_properties(aspcud-app PROPERTIES OUTPUT_NAME aspcud)

install(TARGETS cudf-app aspcud-app RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
