Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt	(revision 612)
+++ CMakeLists.txt	(revision 613)
@@ -16,4 +16,5 @@
 FIND_PACKAGE(GLPK 4.33)
 FIND_PACKAGE(CPLEX)
+FIND_PACKAGE(COIN)
 
 ADD_DEFINITIONS(-DHAVE_CONFIG_H)
Index: cmake/FindCOIN.cmake
===================================================================
--- cmake/FindCOIN.cmake	(revision 613)
+++ cmake/FindCOIN.cmake	(revision 613)
@@ -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)
Index: lemon/CMakeLists.txt
===================================================================
--- lemon/CMakeLists.txt	(revision 612)
+++ lemon/CMakeLists.txt	(revision 613)
@@ -34,4 +34,14 @@
 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})
 
Index: lemon/config.h.cmake
===================================================================
--- lemon/config.h.cmake	(revision 612)
+++ lemon/config.h.cmake	(revision 613)
@@ -4,2 +4,4 @@
 #cmakedefine HAVE_GLPK 1
 #cmakedefine HAVE_CPLEX 1
+#cmakedefine HAVE_CLP 1
+#cmakedefine HAVE_CBC 1
Index: test/CMakeLists.txt
===================================================================
--- test/CMakeLists.txt	(revision 612)
+++ test/CMakeLists.txt	(revision 613)
@@ -46,4 +46,7 @@
     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)
@@ -76,4 +79,7 @@
     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)
