lemon/CMakeLists.txt
author Peter Kovacs <kpeter@inf.elte.hu>
Mon, 16 Jul 2018 16:21:40 +0200
changeset 1176 cd72eae05bdf
parent 908 10242c611190
child 981 cdd2c7dad989
permissions -rw-r--r--
Change typenames to avoid Windows-specific compile issue (#612)
     1 INCLUDE_DIRECTORIES(
     2   ${PROJECT_SOURCE_DIR}
     3   ${PROJECT_BINARY_DIR}
     4 )
     5 
     6 CONFIGURE_FILE(
     7   ${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake
     8   ${CMAKE_CURRENT_BINARY_DIR}/config.h
     9 )
    10 
    11 CONFIGURE_FILE(
    12   ${CMAKE_CURRENT_SOURCE_DIR}/lemon.pc.cmake
    13   ${CMAKE_CURRENT_BINARY_DIR}/lemon.pc
    14   @ONLY
    15 )
    16 
    17 SET(LEMON_SOURCES
    18   arg_parser.cc
    19   base.cc
    20   color.cc
    21   lp_base.cc
    22   lp_skeleton.cc
    23   random.cc
    24   bits/windows.cc
    25 )
    26 
    27 IF(LEMON_HAVE_GLPK)
    28   SET(LEMON_SOURCES ${LEMON_SOURCES} glpk.cc)
    29   INCLUDE_DIRECTORIES(${GLPK_INCLUDE_DIRS})
    30   IF(WIN32)
    31     INSTALL(FILES ${GLPK_BIN_DIR}/glpk.dll DESTINATION bin)
    32     INSTALL(FILES ${GLPK_BIN_DIR}/libltdl3.dll DESTINATION bin)
    33     INSTALL(FILES ${GLPK_BIN_DIR}/zlib1.dll DESTINATION bin)
    34   ENDIF()
    35 ENDIF()
    36 
    37 IF(LEMON_HAVE_CPLEX)
    38   SET(LEMON_SOURCES ${LEMON_SOURCES} cplex.cc)
    39   INCLUDE_DIRECTORIES(${CPLEX_INCLUDE_DIRS})
    40 ENDIF()
    41 
    42 IF(LEMON_HAVE_CLP)
    43   SET(LEMON_SOURCES ${LEMON_SOURCES} clp.cc)
    44   INCLUDE_DIRECTORIES(${COIN_INCLUDE_DIRS})
    45 ENDIF()
    46 
    47 IF(LEMON_HAVE_CBC)
    48   SET(LEMON_SOURCES ${LEMON_SOURCES} cbc.cc)
    49   INCLUDE_DIRECTORIES(${COIN_INCLUDE_DIRS})
    50 ENDIF()
    51 
    52 ADD_LIBRARY(lemon ${LEMON_SOURCES})
    53 IF(UNIX)
    54   SET_TARGET_PROPERTIES(lemon PROPERTIES OUTPUT_NAME emon)
    55 ENDIF()
    56 
    57 INSTALL(
    58   TARGETS lemon
    59   ARCHIVE DESTINATION lib
    60   LIBRARY DESTINATION lib
    61   COMPONENT library
    62 )
    63 
    64 INSTALL(
    65   DIRECTORY . bits concepts
    66   DESTINATION include/lemon
    67   COMPONENT headers
    68   FILES_MATCHING PATTERN "*.h"
    69 )
    70 
    71 INSTALL(
    72   FILES ${CMAKE_CURRENT_BINARY_DIR}/config.h
    73   DESTINATION include/lemon
    74   COMPONENT headers
    75 )
    76 
    77 INSTALL(
    78   FILES ${CMAKE_CURRENT_BINARY_DIR}/lemon.pc
    79   DESTINATION lib/pkgconfig
    80 )
    81