[Lemon-commits] Akos Ladanyi: FindCPLEX for CMake (#256)
Lemon HG
hg at lemon.cs.elte.hu
Sat Apr 25 18:54:00 CEST 2009
details: http://lemon.cs.elte.hu/hg/lemon/rev/c3ce597c11ae
changeset: 652:c3ce597c11ae
user: Akos Ladanyi <ladanyi [at] tmit.bme.hu>
date: Thu Apr 23 07:29:50 2009 +0100
description:
FindCPLEX for CMake (#256)
diffstat:
CMakeLists.txt | 1 +
cmake/FindCPLEX.cmake | 27 +++++++++++++++++++++++++++
lemon/CMakeLists.txt | 5 +++++
lemon/config.h.cmake | 1 +
test/CMakeLists.txt | 28 ++++++++++++++++++++++++++--
5 files changed, 60 insertions(+), 2 deletions(-)
diffs (126 lines):
diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,6 +14,7 @@
INCLUDE(FindDoxygen)
INCLUDE(FindGhostscript)
FIND_PACKAGE(GLPK 4.33)
+FIND_PACKAGE(CPLEX)
ADD_DEFINITIONS(-DHAVE_CONFIG_H)
diff --git a/cmake/FindCPLEX.cmake b/cmake/FindCPLEX.cmake
new file mode 100644
--- /dev/null
+++ b/cmake/FindCPLEX.cmake
@@ -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 --git a/lemon/CMakeLists.txt b/lemon/CMakeLists.txt
--- a/lemon/CMakeLists.txt
+++ b/lemon/CMakeLists.txt
@@ -28,6 +28,11 @@
ENDIF(WIN32)
ENDIF(HAVE_GLPK)
+IF(HAVE_CPLEX)
+ SET(LEMON_SOURCES ${LEMON_SOURCES} cplex.cc)
+ INCLUDE_DIRECTORIES(${CPLEX_INCLUDE_DIRS})
+ENDIF(HAVE_CPLEX)
+
ADD_LIBRARY(lemon ${LEMON_SOURCES})
INSTALL(
diff --git a/lemon/config.h.cmake b/lemon/config.h.cmake
--- a/lemon/config.h.cmake
+++ b/lemon/config.h.cmake
@@ -2,3 +2,4 @@
#cmakedefine HAVE_LP 1
#cmakedefine HAVE_MIP 1
#cmakedefine HAVE_GLPK 1
+#cmakedefine HAVE_CPLEX 1
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -38,9 +38,14 @@
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)
+ TARGET_LINK_LIBRARIES(lp_test ${LP_TEST_LIBS})
ADD_TEST(lp_test lp_test)
IF(WIN32 AND HAVE_GLPK)
@@ -52,13 +57,25 @@
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)
+ TARGET_LINK_LIBRARIES(mip_test ${MIP_TEST_LIBS})
ADD_TEST(mip_test mip_test)
IF(WIN32 AND HAVE_GLPK)
@@ -70,6 +87,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})
More information about the Lemon-commits
mailing list