include_directories(${LightGBM_HEADER_DIR})

if(APPLE)
  set(CMAKE_SHARED_LIBRARY_SUFFIX ".so")
endif(APPLE)

if(USE_MPI)
  include_directories(${MPI_CXX_INCLUDE_PATH})
endif()

AUX_SOURCE_DIRECTORY(./application/ APPLICATION_SRC) 
AUX_SOURCE_DIRECTORY(./boosting/ BOOSTING_SRC) 
AUX_SOURCE_DIRECTORY(./io/ IO_SRC) 
AUX_SOURCE_DIRECTORY(./metric/ METRIC_SRC) 
AUX_SOURCE_DIRECTORY(./objective/ OBJECTIVE_SRC) 
AUX_SOURCE_DIRECTORY(./network/ NETWORK_SRC) 
AUX_SOURCE_DIRECTORY(./treelearner/ TREELEARNER_SRC) 

add_executable(lightgbm main.cpp ${APPLICATION_SRC} ${BOOSTING_SRC} ${IO_SRC} ${METRIC_SRC} ${OBJECTIVE_SRC} ${NETWORK_SRC} ${TREELEARNER_SRC})

add_library(_lightgbm SHARED c_api.cpp ${APPLICATION_SRC} ${BOOSTING_SRC} ${IO_SRC} ${METRIC_SRC} ${OBJECTIVE_SRC} ${NETWORK_SRC} ${TREELEARNER_SRC})

if(USE_MPI)
  TARGET_LINK_LIBRARIES(lightgbm ${MPI_CXX_LIBRARIES})
  TARGET_LINK_LIBRARIES(_lightgbm ${MPI_CXX_LIBRARIES})
endif(USE_MPI)

if(WIN32)
  TARGET_LINK_LIBRARIES(lightgbm Ws2_32)
  TARGET_LINK_LIBRARIES(_lightgbm Ws2_32)
  TARGET_LINK_LIBRARIES(lightgbm IPHLPAPI)
  TARGET_LINK_LIBRARIES(_lightgbm IPHLPAPI)
endif(WIN32)

install(TARGETS lightgbm _lightgbm
        RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
        LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
install(DIRECTORY ${LightGBM_HEADER_DIR}/LightGBM DESTINATION ${CMAKE_INSTALL_PREFIX}/include)

