summaryrefslogtreecommitdiff
path: root/cpp/src/cluster.cmake
diff options
context:
space:
mode:
authorStephen D. Huston <shuston@apache.org>2009-04-23 22:59:12 +0000
committerStephen D. Huston <shuston@apache.org>2009-04-23 22:59:12 +0000
commit3c95f9a289fee6a3b43608ec2ac95f841c43e3ff (patch)
tree5860c778c3e2b2c6c23b49887ae870cb5d4558ff /cpp/src/cluster.cmake
parent7db52d95099fb7ae237277f12e4e368cf643f174 (diff)
downloadqpid-python-3c95f9a289fee6a3b43608ec2ac95f841c43e3ff.tar.gz
Merge in initial changes to allow building with CMake; rubygen and managementgen can now generate either .mk files or .cmake files as needed; CONF_FILE and MODULE_DIR macros now have broker/client counterparts QPIDD_CONF_FILE, QPIDD_MODULE_DIR, QPIDC_CONF_FILE, QPIDC_MODULE_DIR configurable by cmake
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@768085 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/cluster.cmake')
-rw-r--r--cpp/src/cluster.cmake119
1 files changed, 119 insertions, 0 deletions
diff --git a/cpp/src/cluster.cmake b/cpp/src/cluster.cmake
new file mode 100644
index 0000000000..5d7c4380b6
--- /dev/null
+++ b/cpp/src/cluster.cmake
@@ -0,0 +1,119 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+# Cluster library CMake fragment, to be included in CMakeLists.txt
+#
+
+# Optional cluster support. Requires CPG; if building it, can optionally
+# include CMAN support as well.
+
+include(CheckIncludeFiles)
+include(CheckLibraryExists)
+
+if (CMAKE_SYSTEM_NAME STREQUAL Windows)
+ set (cluster_default OFF)
+else (CMAKE_SYSTEM_NAME STREQUAL Windows)
+ set (cluster_default ON)
+endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
+
+option(BUILD_CPG "Build with CPG support for clustering" ${cluster_default})
+if (BUILD_CPG)
+ CHECK_LIBRARY_EXISTS (cpg cpg_local_get
+ "-L/usr/lib/openais -L/usr/lib64/openais -L/usr/lib/corosync -L/usr/lib64/corosync"
+ HAVE_LIBCPG)
+ CHECK_INCLUDE_FILES (openais/cpg.h HAVE_OPENAIS_CPG_H)
+ CHECK_INCLUDE_FILES (corosync/cpg.h HAVE_COROSYNC_CPG_H)
+ if (NOT HAVE_LIBCPG)
+ message(FATAL_ERROR "libcpg not found, install openais-devel or corosync-devel")
+ endif (NOT HAVE_LIBCPG)
+ if (NOT HAVE_OPENAIS_CPG_H AND NOT HAVE_COROSYNC_CPG_H)
+ message(FATAL_ERROR "cpg.h not found, install openais-devel or corosync-devel")
+ endif (NOT HAVE_OPENAIS_CPG_H AND NOT HAVE_COROSYNC_CPG_H)
+
+ option(CPG_INCLUDE_CMAN "Include libcman quorum service integration" ON)
+ if (CPG_INCLUDE_CMAN)
+ CHECK_LIBRARY_EXISTS (cman cman_is_quorate "" HAVE_LIBCMAN)
+ CHECK_INCLUDE_FILES (libcman.h HAVE_LIBCMAN_H)
+ if (NOT HAVE_LIBCMAN)
+ message(FATAL_ERROR "libcman not found, install cman-devel or cmanlib-devel")
+ endif (NOT HAVE_LIBCMAN)
+ if (NOT HAVE_LIBCMAN_H)
+ message(FATAL_ERROR "libcman.h not found, install cman-devel or cmanlib-devel")
+ endif (NOT HAVE_LIBCMAN_H)
+
+ set (CMAN_SOURCES qpid/cluster/Quorum_cman.h qpid/cluster/Quorum_cman.cpp)
+ set (CMAN_LIB cman)
+ else (CPG_INCLUDE_CMAN)
+ set (CMAN_SOURCES qpid/cluster/Quorum_null.h)
+ endif (CPG_INCLUDE_CMAN)
+
+ set (cluster_SOURCES
+ ${CMAN_SOURCES}
+ qpid/cluster/Cluster.cpp
+ qpid/cluster/Cluster.h
+ qpid/cluster/Decoder.cpp
+ qpid/cluster/Decoder.h
+ qpid/cluster/PollableQueue.h
+ qpid/cluster/ClusterMap.cpp
+ qpid/cluster/ClusterMap.h
+ qpid/cluster/ClusterPlugin.cpp
+ qpid/cluster/ClusterSettings.h
+ qpid/cluster/Connection.cpp
+ qpid/cluster/Connection.h
+ qpid/cluster/ConnectionCodec.cpp
+ qpid/cluster/ConnectionCodec.h
+ qpid/cluster/Cpg.cpp
+ qpid/cluster/Cpg.h
+ qpid/cluster/Dispatchable.h
+ qpid/cluster/UpdateClient.cpp
+ qpid/cluster/UpdateClient.h
+ qpid/cluster/Event.cpp
+ qpid/cluster/Event.h
+ qpid/cluster/EventFrame.h
+ qpid/cluster/EventFrame.cpp
+ qpid/cluster/ExpiryPolicy.h
+ qpid/cluster/ExpiryPolicy.cpp
+ qpid/cluster/FailoverExchange.cpp
+ qpid/cluster/FailoverExchange.h
+ qpid/cluster/UpdateExchange.h
+ qpid/cluster/LockedConnectionMap.h
+ qpid/cluster/Multicaster.cpp
+ qpid/cluster/Multicaster.h
+ qpid/cluster/McastFrameHandler.h
+ qpid/cluster/NoOpConnectionOutputHandler.h
+ qpid/cluster/OutputInterceptor.cpp
+ qpid/cluster/OutputInterceptor.h
+ qpid/cluster/PollerDispatch.cpp
+ qpid/cluster/PollerDispatch.h
+ qpid/cluster/ProxyInputHandler.h
+ qpid/cluster/Quorum.h
+ qpid/cluster/WriteEstimate.cpp
+ qpid/cluster/WriteEstimate.h
+ qpid/cluster/types.h
+ )
+
+ add_library (cluster SHARED ${cluster_SOURCES})
+ target_link_libraries (cluster cpg ${CMAN_LIB} qpidbroker qpidclient)
+#cluster_la_LDFLAGS = $(PLUGINLDFLAGS)
+ set_target_properties (cluster PROPERTIES VERSION ${qpidc_version})
+
+endif (BUILD_CPG)
+
+# Distribute all sources.
+#EXTRA_DIST += qpid/cluster/Quorum_cman.h qpid/cluster/Quorum_cman.cpp qpid/cluster/Quorum_null.h