[Lemon-commits] Alpar Juttner: Merge
Lemon HG
hg at lemon.cs.elte.hu
Wed Apr 29 18:54:41 CEST 2009
details: http://lemon.cs.elte.hu/hg/lemon/rev/8d289c89d43e
changeset: 683:8d289c89d43e
user: Alpar Juttner <alpar [at] cs.elte.hu>
date: Wed Apr 29 17:48:41 2009 +0100
description:
Merge
diffstat:
CMakeLists.txt | 4 +-
Makefile.am | 5 +-
cmake/FindCOIN.cmake | 72 +++++++++++++++++++++++-------------
cmake/FindCPLEX.cmake | 27 +++++++++----
cmake/FindGLPK.cmake | 50 +++++++++++++++++++++----
configure.ac | 2 +-
lemon/CMakeLists.txt | 21 ++++++----
lemon/Makefile.am | 4 +-
lemon/bits/default_map.h | 2 +-
lemon/config.h.cmake | 14 +++---
lemon/config.h.in | 16 ++++----
lemon/core.h | 2 +-
lemon/lp.h | 16 ++++----
m4/lx_check_coin.m4 | 10 ++--
m4/lx_check_cplex.m4 | 6 +-
m4/lx_check_glpk.m4 | 6 +-
m4/lx_check_soplex.m4 | 4 +-
scripts/unify-sources.sh | 9 +++-
test/CMakeLists.txt | 48 ++++++++++++------------
test/lp_test.cc | 18 ++++-----
test/mip_test.cc | 14 +++----
tools/dimacs-solver.cc | 4 +-
22 files changed, 213 insertions(+), 141 deletions(-)
diffs (truncated from 801 to 300 lines):
diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,8 +17,6 @@
FIND_PACKAGE(CPLEX)
FIND_PACKAGE(COIN)
-ADD_DEFINITIONS(-DHAVE_CONFIG_H)
-
IF(MSVC)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4250 /wd4355 /wd4800 /wd4996")
# Suppressed warnings:
@@ -29,7 +27,7 @@
ENDIF(MSVC)
INCLUDE(CheckTypeSize)
-CHECK_TYPE_SIZE("long long" LONG_LONG)
+CHECK_TYPE_SIZE("long long" LEMON_LONG_LONG)
ENABLE_TESTING()
diff --git a/Makefile.am b/Makefile.am
--- a/Makefile.am
+++ b/Makefile.am
@@ -11,11 +11,12 @@
m4/lx_check_cplex.m4 \
m4/lx_check_glpk.m4 \
m4/lx_check_soplex.m4 \
- m4/lx_check_clp.m4 \
- m4/lx_check_cbc.m4 \
+ m4/lx_check_coin.m4 \
CMakeLists.txt \
cmake/FindGhostscript.cmake \
+ cmake/FindCPLEX.cmake \
cmake/FindGLPK.cmake \
+ cmake/FindCOIN.cmake \
cmake/version.cmake.in \
cmake/version.cmake \
cmake/nsis/lemon.ico \
diff --git a/cmake/FindCOIN.cmake b/cmake/FindCOIN.cmake
--- a/cmake/FindCOIN.cmake
+++ b/cmake/FindCOIN.cmake
@@ -1,28 +1,48 @@
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)
+ HINTS ${COIN_ROOT_DIR}/include
+)
+FIND_LIBRARY(COIN_CBC_LIBRARY
+ NAMES Cbc libCbc
+ HINTS ${COIN_ROOT_DIR}/lib
+)
+FIND_LIBRARY(COIN_CBC_SOLVER_LIBRARY
+ NAMES CbcSolver libCbcSolver
+ HINTS ${COIN_ROOT_DIR}/lib
+)
+FIND_LIBRARY(COIN_CGL_LIBRARY
+ NAMES Cgl libCgl
+ HINTS ${COIN_ROOT_DIR}/lib
+)
+FIND_LIBRARY(COIN_CLP_LIBRARY
+ NAMES Clp libClp
+ HINTS ${COIN_ROOT_DIR}/lib
+)
+FIND_LIBRARY(COIN_COIN_UTILS_LIBRARY
+ NAMES CoinUtils libCoinUtils
+ HINTS ${COIN_ROOT_DIR}/lib
+)
+FIND_LIBRARY(COIN_OSI_LIBRARY
+ NAMES Osi libOsi
+ HINTS ${COIN_ROOT_DIR}/lib
+)
+FIND_LIBRARY(COIN_OSI_CBC_LIBRARY
+ NAMES OsiCbc libOsiCbc
+ HINTS ${COIN_ROOT_DIR}/lib
+)
+FIND_LIBRARY(COIN_OSI_CLP_LIBRARY
+ NAMES OsiClp libOsiClp
+ HINTS ${COIN_ROOT_DIR}/lib
+)
+FIND_LIBRARY(COIN_OSI_VOL_LIBRARY
+ NAMES OsiVol libOsiVol
+ HINTS ${COIN_ROOT_DIR}/lib
+)
+FIND_LIBRARY(COIN_VOL_LIBRARY
+ NAMES Vol libVol
+ HINTS ${COIN_ROOT_DIR}/lib
+)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(COIN DEFAULT_MSG
@@ -61,8 +81,8 @@
)
IF(COIN_FOUND)
- SET(HAVE_LP TRUE)
- SET(HAVE_MIP TRUE)
- SET(HAVE_CLP TRUE)
- SET(HAVE_CBC TRUE)
+ SET(LEMON_HAVE_LP TRUE)
+ SET(LEMON_HAVE_MIP TRUE)
+ SET(LEMON_HAVE_CLP TRUE)
+ SET(LEMON_HAVE_CBC TRUE)
ENDIF(COIN_FOUND)
diff --git a/cmake/FindCPLEX.cmake b/cmake/FindCPLEX.cmake
--- a/cmake/FindCPLEX.cmake
+++ b/cmake/FindCPLEX.cmake
@@ -1,27 +1,38 @@
+SET(CPLEX_ROOT_DIR "" CACHE PATH "CPLEX root directory")
+
FIND_PATH(CPLEX_INCLUDE_DIR
ilcplex/cplex.h
- PATHS "C:/ILOG/CPLEX91/include")
-
+ PATHS "C:/ILOG/CPLEX91/include"
+ PATHS "/opt/ilog/cplex91/include"
+ HINTS ${CPLEX_ROOT_DIR}/include
+)
FIND_LIBRARY(CPLEX_LIBRARY
- NAMES cplex91
- PATHS "C:/ILOG/CPLEX91/lib/msvc7/stat_mda")
+ cplex91
+ PATHS "C:/ILOG/CPLEX91/lib/msvc7/stat_mda"
+ PATHS "/opt/ilog/cplex91/bin"
+ HINTS ${CPLEX_ROOT_DIR}/bin
+)
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")
+ PATHS "C:/ILOG/CPLEX91/bin/x86_win32"
+)
IF(CPLEX_FOUND)
SET(CPLEX_INCLUDE_DIRS ${CPLEX_INCLUDE_DIR})
SET(CPLEX_LIBRARIES ${CPLEX_LIBRARY})
+ IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ SET(CPLEX_LIBRARIES "${CPLEX_LIBRARIES};m;pthread")
+ ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
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)
+ SET(LEMON_HAVE_LP TRUE)
+ SET(LEMON_HAVE_MIP TRUE)
+ SET(LEMON_HAVE_CPLEX TRUE)
ENDIF(CPLEX_FOUND)
diff --git a/cmake/FindGLPK.cmake b/cmake/FindGLPK.cmake
--- a/cmake/FindGLPK.cmake
+++ b/cmake/FindGLPK.cmake
@@ -1,16 +1,50 @@
+SET(GLPK_ROOT_DIR "" CACHE PATH "GLPK root directory")
+
SET(GLPK_REGKEY "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\Glpk;InstallPath]")
GET_FILENAME_COMPONENT(GLPK_ROOT_PATH ${GLPK_REGKEY} ABSOLUTE)
FIND_PATH(GLPK_INCLUDE_DIR
glpk.h
- PATHS ${GLPK_REGKEY}/include)
+ PATHS ${GLPK_REGKEY}/include
+ HINTS ${GLPK_ROOT_DIR}/include
+)
+FIND_LIBRARY(GLPK_LIBRARY
+ glpk
+ PATHS ${GLPK_REGKEY}/lib
+ HINTS ${GLPK_ROOT_DIR}/lib
+)
-FIND_LIBRARY(GLPK_LIBRARY
- NAMES glpk
- PATHS ${GLPK_REGKEY}/lib)
+IF(GLPK_INCLUDE_DIR AND GLPK_LIBRARY)
+ FILE(READ ${GLPK_INCLUDE_DIR}/glpk.h GLPK_GLPK_H)
+
+ STRING(REGEX MATCH "define[ ]+GLP_MAJOR_VERSION[ ]+[0-9]+" GLPK_MAJOR_VERSION_LINE "${GLPK_GLPK_H}")
+ STRING(REGEX REPLACE "define[ ]+GLP_MAJOR_VERSION[ ]+([0-9]+)" "\\1" GLPK_VERSION_MAJOR "${GLPK_MAJOR_VERSION_LINE}")
+
+ STRING(REGEX MATCH "define[ ]+GLP_MINOR_VERSION[ ]+[0-9]+" GLPK_MINOR_VERSION_LINE "${GLPK_GLPK_H}")
+ STRING(REGEX REPLACE "define[ ]+GLP_MINOR_VERSION[ ]+([0-9]+)" "\\1" GLPK_VERSION_MINOR "${GLPK_MINOR_VERSION_LINE}")
+
+ SET(GLPK_VERSION_STRING "${GLPK_VERSION_MAJOR}.${GLPK_VERSION_MINOR}")
+
+ IF(GLPK_FIND_VERSION)
+ IF(GLPK_FIND_VERSION_COUNT GREATER 2)
+ MESSAGE(SEND_ERROR "unexpected version string")
+ ENDIF(GLPK_FIND_VERSION_COUNT GREATER 2)
+
+ MATH(EXPR GLPK_REQUESTED_VERSION "${GLPK_FIND_VERSION_MAJOR}*100 + ${GLPK_FIND_VERSION_MINOR}")
+ MATH(EXPR GLPK_FOUND_VERSION "${GLPK_VERSION_MAJOR}*100 + ${GLPK_VERSION_MINOR}")
+
+ IF(GLPK_FOUND_VERSION LESS GLPK_REQUESTED_VERSION)
+ SET(GLPK_PROPER_VERSION_FOUND FALSE)
+ ELSE(GLPK_FOUND_VERSION LESS GLPK_REQUESTED_VERSION)
+ SET(GLPK_PROPER_VERSION_FOUND TRUE)
+ ENDIF(GLPK_FOUND_VERSION LESS GLPK_REQUESTED_VERSION)
+ ELSE(GLPK_FIND_VERSION)
+ SET(GLPK_PROPER_VERSION_FOUND TRUE)
+ ENDIF(GLPK_FIND_VERSION)
+ENDIF(GLPK_INCLUDE_DIR AND GLPK_LIBRARY)
INCLUDE(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLPK DEFAULT_MSG GLPK_LIBRARY GLPK_INCLUDE_DIR)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLPK DEFAULT_MSG GLPK_LIBRARY GLPK_INCLUDE_DIR GLPK_PROPER_VERSION_FOUND)
IF(GLPK_FOUND)
SET(GLPK_INCLUDE_DIRS ${GLPK_INCLUDE_DIR})
@@ -21,7 +55,7 @@
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)
+ SET(LEMON_HAVE_LP TRUE)
+ SET(LEMON_HAVE_MIP TRUE)
+ SET(LEMON_HAVE_GLPK TRUE)
ENDIF(GLPK_FOUND)
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -25,7 +25,7 @@
dnl Check the existence of long long type.
AC_CHECK_TYPE(long long, [long_long_found=yes], [long_long_found=no])
if test x"$long_long_found" = x"yes"; then
- AC_DEFINE([HAVE_LONG_LONG], [1], [Define to 1 if you have long long.])
+ AC_DEFINE([LEMON_HAVE_LONG_LONG], [1], [Define to 1 if you have long long.])
fi
dnl Checks for programs.
diff --git a/lemon/CMakeLists.txt b/lemon/CMakeLists.txt
--- a/lemon/CMakeLists.txt
+++ b/lemon/CMakeLists.txt
@@ -18,7 +18,7 @@
bits/windows.cc
)
-IF(HAVE_GLPK)
+IF(LEMON_HAVE_GLPK)
SET(LEMON_SOURCES ${LEMON_SOURCES} glpk.cc)
INCLUDE_DIRECTORIES(${GLPK_INCLUDE_DIRS})
IF(WIN32)
@@ -26,22 +26,22 @@
INSTALL(FILES ${GLPK_BIN_DIR}/libltdl3.dll DESTINATION bin)
INSTALL(FILES ${GLPK_BIN_DIR}/zlib1.dll DESTINATION bin)
ENDIF(WIN32)
-ENDIF(HAVE_GLPK)
+ENDIF(LEMON_HAVE_GLPK)
-IF(HAVE_CPLEX)
+IF(LEMON_HAVE_CPLEX)
SET(LEMON_SOURCES ${LEMON_SOURCES} cplex.cc)
INCLUDE_DIRECTORIES(${CPLEX_INCLUDE_DIRS})
-ENDIF(HAVE_CPLEX)
+ENDIF(LEMON_HAVE_CPLEX)
-IF(HAVE_CLP)
+IF(LEMON_HAVE_CLP)
SET(LEMON_SOURCES ${LEMON_SOURCES} clp.cc)
INCLUDE_DIRECTORIES(${COIN_INCLUDE_DIRS})
-ENDIF(HAVE_CLP)
+ENDIF(LEMON_HAVE_CLP)
-IF(HAVE_CBC)
+IF(LEMON_HAVE_CBC)
SET(LEMON_SOURCES ${LEMON_SOURCES} cbc.cc)
INCLUDE_DIRECTORIES(${COIN_INCLUDE_DIRS})
-ENDIF(HAVE_CBC)
+ENDIF(LEMON_HAVE_CBC)
ADD_LIBRARY(lemon ${LEMON_SOURCES})
More information about the Lemon-commits
mailing list