# HG changeset patch # User Alpar Juttner # Date 1240678269 -3600 # Node ID 1f631044c290ffb9b8dce21dfb3f09a295a53be3 # Parent 7c1324b35d89a2ef91a42e14fae342b651db4549# Parent b536eaacb39b5b109ea5653721241ddf90bdc372 Merge diff -r 7c1324b35d89 -r 1f631044c290 CMakeLists.txt --- a/CMakeLists.txt Sat Apr 25 02:12:41 2009 +0200 +++ b/CMakeLists.txt Sat Apr 25 17:51:09 2009 +0100 @@ -14,6 +14,8 @@ INCLUDE(FindDoxygen) INCLUDE(FindGhostscript) FIND_PACKAGE(GLPK 4.33) +FIND_PACKAGE(CPLEX) +FIND_PACKAGE(COIN) ADD_DEFINITIONS(-DHAVE_CONFIG_H) @@ -26,12 +28,6 @@ # C4996: 'function': was declared deprecated ENDIF(MSVC) -IF(GLPK_FOUND) - SET(HAVE_LP TRUE) - SET(HAVE_MIP TRUE) - SET(HAVE_GLPK TRUE) -ENDIF(GLPK_FOUND) - INCLUDE(CheckTypeSize) CHECK_TYPE_SIZE("long long" LONG_LONG) diff -r 7c1324b35d89 -r 1f631044c290 cmake/FindCOIN.cmake --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cmake/FindCOIN.cmake Sat Apr 25 17:51:09 2009 +0100 @@ -0,0 +1,68 @@ +SET(COIN_ROOT_DIR "" CACHE PATH "COIN root directory") + +FIND_PATH(COIN_INCLUDE_DIR coin/CoinUtilsConfig.h + PATHS ${COIN_ROOT_DIR}/include) + +FIND_LIBRARY(COIN_CBC_LIBRARY libCbc + PATHS ${COIN_ROOT_DIR}/lib) +FIND_LIBRARY(COIN_CBC_SOLVER_LIBRARY libCbcSolver + PATHS ${COIN_ROOT_DIR}/lib) +FIND_LIBRARY(COIN_CGL_LIBRARY libCgl + PATHS ${COIN_ROOT_DIR}/lib) +FIND_LIBRARY(COIN_CLP_LIBRARY libClp + PATHS ${COIN_ROOT_DIR}/lib) +FIND_LIBRARY(COIN_COIN_UTILS_LIBRARY libCoinUtils + PATHS ${COIN_ROOT_DIR}/lib) +FIND_LIBRARY(COIN_OSI_LIBRARY libOsi + PATHS ${COIN_ROOT_DIR}/lib) +FIND_LIBRARY(COIN_OSI_CBC_LIBRARY libOsiCbc + PATHS ${COIN_ROOT_DIR}/lib) +FIND_LIBRARY(COIN_OSI_CLP_LIBRARY libOsiClp + PATHS ${COIN_ROOT_DIR}/lib) +FIND_LIBRARY(COIN_OSI_VOL_LIBRARY libOsiVol + PATHS ${COIN_ROOT_DIR}/lib) +FIND_LIBRARY(COIN_VOL_LIBRARY libVol + PATHS ${COIN_ROOT_DIR}/lib) + +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(COIN DEFAULT_MSG + COIN_INCLUDE_DIR + COIN_CBC_LIBRARY + COIN_CBC_SOLVER_LIBRARY + COIN_CGL_LIBRARY + COIN_CLP_LIBRARY + COIN_COIN_UTILS_LIBRARY + COIN_OSI_LIBRARY + COIN_OSI_CBC_LIBRARY + COIN_OSI_CLP_LIBRARY + COIN_OSI_VOL_LIBRARY + COIN_VOL_LIBRARY +) + +IF(COIN_FOUND) + SET(COIN_INCLUDE_DIRS ${COIN_INCLUDE_DIR}) + SET(COIN_LIBRARIES "${COIN_CBC_LIBRARY};${COIN_CBC_SOLVER_LIBRARY};${COIN_CGL_LIBRARY};${COIN_CLP_LIBRARY};${COIN_COIN_UTILS_LIBRARY};${COIN_OSI_LIBRARY};${COIN_OSI_CBC_LIBRARY};${COIN_OSI_CLP_LIBRARY};${COIN_OSI_VOL_LIBRARY};${COIN_VOL_LIBRARY}") + SET(COIN_CLP_LIBRARIES "${COIN_CLP_LIBRARY};${COIN_COIN_UTILS_LIBRARY}") + SET(COIN_CBC_LIBRARIES ${COIN_LIBRARIES}) +ENDIF(COIN_FOUND) + +MARK_AS_ADVANCED( + COIN_INCLUDE_DIR + COIN_CBC_LIBRARY + COIN_CBC_SOLVER_LIBRARY + COIN_CGL_LIBRARY + COIN_CLP_LIBRARY + COIN_COIN_UTILS_LIBRARY + COIN_OSI_LIBRARY + COIN_OSI_CBC_LIBRARY + COIN_OSI_CLP_LIBRARY + COIN_OSI_VOL_LIBRARY + COIN_VOL_LIBRARY +) + +IF(COIN_FOUND) + SET(HAVE_LP TRUE) + SET(HAVE_MIP TRUE) + SET(HAVE_CLP TRUE) + SET(HAVE_CBC TRUE) +ENDIF(COIN_FOUND) diff -r 7c1324b35d89 -r 1f631044c290 cmake/FindCPLEX.cmake --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cmake/FindCPLEX.cmake Sat Apr 25 17:51:09 2009 +0100 @@ -0,0 +1,27 @@ +FIND_PATH(CPLEX_INCLUDE_DIR + ilcplex/cplex.h + PATHS "C:/ILOG/CPLEX91/include") + +FIND_LIBRARY(CPLEX_LIBRARY + NAMES cplex91 + PATHS "C:/ILOG/CPLEX91/lib/msvc7/stat_mda") + +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(CPLEX DEFAULT_MSG CPLEX_LIBRARY CPLEX_INCLUDE_DIR) + +FIND_PATH(CPLEX_BIN_DIR + cplex91.dll + PATHS "C:/ILOG/CPLEX91/bin/x86_win32") + +IF(CPLEX_FOUND) + SET(CPLEX_INCLUDE_DIRS ${CPLEX_INCLUDE_DIR}) + SET(CPLEX_LIBRARIES ${CPLEX_LIBRARY}) +ENDIF(CPLEX_FOUND) + +MARK_AS_ADVANCED(CPLEX_LIBRARY CPLEX_INCLUDE_DIR CPLEX_BIN_DIR) + +IF(CPLEX_FOUND) + SET(HAVE_LP TRUE) + SET(HAVE_MIP TRUE) + SET(HAVE_CPLEX TRUE) +ENDIF(CPLEX_FOUND) diff -r 7c1324b35d89 -r 1f631044c290 cmake/FindGLPK.cmake --- a/cmake/FindGLPK.cmake Sat Apr 25 02:12:41 2009 +0200 +++ b/cmake/FindGLPK.cmake Sat Apr 25 17:51:09 2009 +0100 @@ -13,8 +13,15 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLPK DEFAULT_MSG GLPK_LIBRARY GLPK_INCLUDE_DIR) IF(GLPK_FOUND) + SET(GLPK_INCLUDE_DIRS ${GLPK_INCLUDE_DIR}) SET(GLPK_LIBRARIES ${GLPK_LIBRARY}) SET(GLPK_BIN_DIR ${GLPK_ROOT_PATH}/bin) ENDIF(GLPK_FOUND) MARK_AS_ADVANCED(GLPK_LIBRARY GLPK_INCLUDE_DIR GLPK_BIN_DIR) + +IF(GLPK_FOUND) + SET(HAVE_LP TRUE) + SET(HAVE_MIP TRUE) + SET(HAVE_GLPK TRUE) +ENDIF(GLPK_FOUND) diff -r 7c1324b35d89 -r 1f631044c290 lemon/CMakeLists.txt --- a/lemon/CMakeLists.txt Sat Apr 25 02:12:41 2009 +0200 +++ b/lemon/CMakeLists.txt Sat Apr 25 17:51:09 2009 +0100 @@ -20,7 +20,7 @@ IF(HAVE_GLPK) SET(LEMON_SOURCES ${LEMON_SOURCES} glpk.cc) - INCLUDE_DIRECTORIES(${GLPK_INCLUDE_DIR}) + INCLUDE_DIRECTORIES(${GLPK_INCLUDE_DIRS}) IF(WIN32) INSTALL(FILES ${GLPK_BIN_DIR}/glpk.dll DESTINATION bin) INSTALL(FILES ${GLPK_BIN_DIR}/libltdl3.dll DESTINATION bin) @@ -28,6 +28,21 @@ ENDIF(WIN32) ENDIF(HAVE_GLPK) +IF(HAVE_CPLEX) + SET(LEMON_SOURCES ${LEMON_SOURCES} cplex.cc) + INCLUDE_DIRECTORIES(${CPLEX_INCLUDE_DIRS}) +ENDIF(HAVE_CPLEX) + +IF(HAVE_CLP) + SET(LEMON_SOURCES ${LEMON_SOURCES} clp.cc) + INCLUDE_DIRECTORIES(${COIN_INCLUDE_DIRS}) +ENDIF(HAVE_CLP) + +IF(HAVE_CBC) + SET(LEMON_SOURCES ${LEMON_SOURCES} cbc.cc) + INCLUDE_DIRECTORIES(${COIN_INCLUDE_DIRS}) +ENDIF(HAVE_CBC) + ADD_LIBRARY(lemon ${LEMON_SOURCES}) INSTALL( diff -r 7c1324b35d89 -r 1f631044c290 lemon/config.h.cmake --- a/lemon/config.h.cmake Sat Apr 25 02:12:41 2009 +0200 +++ b/lemon/config.h.cmake Sat Apr 25 17:51:09 2009 +0100 @@ -2,3 +2,6 @@ #cmakedefine HAVE_LP 1 #cmakedefine HAVE_MIP 1 #cmakedefine HAVE_GLPK 1 +#cmakedefine HAVE_CPLEX 1 +#cmakedefine HAVE_CLP 1 +#cmakedefine HAVE_CBC 1 diff -r 7c1324b35d89 -r 1f631044c290 test/CMakeLists.txt --- a/test/CMakeLists.txt Sat Apr 25 02:12:41 2009 +0200 +++ b/test/CMakeLists.txt Sat Apr 25 17:51:09 2009 +0100 @@ -3,10 +3,6 @@ ${PROJECT_BINARY_DIR} ) -IF(HAVE_GLPK) - INCLUDE_DIRECTORIES(${GLPK_INCLUDE_DIR}) -ENDIF(HAVE_GLPK) - LINK_DIRECTORIES(${PROJECT_BINARY_DIR}/lemon) SET(TESTS @@ -42,9 +38,17 @@ IF(HAVE_LP) ADD_EXECUTABLE(lp_test lp_test.cc) + SET(LP_TEST_LIBS lemon) IF(HAVE_GLPK) - TARGET_LINK_LIBRARIES(lp_test lemon ${GLPK_LIBRARIES}) + SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${GLPK_LIBRARIES}) ENDIF(HAVE_GLPK) + IF(HAVE_CPLEX) + SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${CPLEX_LIBRARIES}) + ENDIF(HAVE_CPLEX) + IF(HAVE_CLP) + SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${COIN_CLP_LIBRARIES}) + ENDIF(HAVE_CLP) + TARGET_LINK_LIBRARIES(lp_test ${LP_TEST_LIBS}) ADD_TEST(lp_test lp_test) IF(WIN32 AND HAVE_GLPK) @@ -56,13 +60,28 @@ COMMAND cmake -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH} ) ENDIF(WIN32 AND HAVE_GLPK) + IF(WIN32 AND HAVE_CPLEX) + GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION) + GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH) + ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD + COMMAND cmake -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH} + ) + ENDIF(WIN32 AND HAVE_CPLEX) ENDIF(HAVE_LP) IF(HAVE_MIP) ADD_EXECUTABLE(mip_test mip_test.cc) + SET(MIP_TEST_LIBS lemon) IF(HAVE_GLPK) - TARGET_LINK_LIBRARIES(mip_test lemon ${GLPK_LIBRARIES}) + SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${GLPK_LIBRARIES}) ENDIF(HAVE_GLPK) + IF(HAVE_CPLEX) + SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${CPLEX_LIBRARIES}) + ENDIF(HAVE_CPLEX) + IF(HAVE_CBC) + SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${COIN_CBC_LIBRARIES}) + ENDIF(HAVE_CBC) + TARGET_LINK_LIBRARIES(mip_test ${MIP_TEST_LIBS}) ADD_TEST(mip_test mip_test) IF(WIN32 AND HAVE_GLPK) @@ -74,6 +93,13 @@ COMMAND cmake -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH} ) ENDIF(WIN32 AND HAVE_GLPK) + IF(WIN32 AND HAVE_CPLEX) + GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION) + GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH) + ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD + COMMAND cmake -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH} + ) + ENDIF(WIN32 AND HAVE_CPLEX) ENDIF(HAVE_MIP) FOREACH(TEST_NAME ${TESTS})