summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen D. Huston <shuston@apache.org>2009-04-15 19:46:04 +0000
committerStephen D. Huston <shuston@apache.org>2009-04-15 19:46:04 +0000
commit1c2898234ee26a3a79916506ade45e90351000f4 (patch)
tree2a0685e43967651859d4d9dbb76329e1d24de667
parent67d330f235362bf622b95f8c4d14321272a44ba7 (diff)
downloadqpid-python-1c2898234ee26a3a79916506ade45e90351000f4.tar.gz
Initial CMake support
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/cmake@765329 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/CMakeLists.txt40
-rw-r--r--qpid/cpp/managementgen/CMakeLists.txt37
-rw-r--r--qpid/cpp/src/CMakeLists.txt446
-rw-r--r--qpid/cpp/src/posix/QpiddBroker.cpp5
-rw-r--r--qpid/cpp/src/qpid/CommonImportExport.h2
-rw-r--r--qpid/cpp/src/qpid/broker/BrokerImportExport.h2
-rw-r--r--qpid/cpp/src/qpid/client/ClientImportExport.h2
-rw-r--r--qpid/cpp/src/qpid/client/LoadPlugins.cpp5
-rw-r--r--qpid/cpp/src/tests/CMakeLists.txt253
-rw-r--r--qpid/cpp/src/windows/QpiddBroker.cpp16
10 files changed, 790 insertions, 18 deletions
diff --git a/qpid/cpp/CMakeLists.txt b/qpid/cpp/CMakeLists.txt
new file mode 100644
index 0000000000..e17a93a1f1
--- /dev/null
+++ b/qpid/cpp/CMakeLists.txt
@@ -0,0 +1,40 @@
+#
+# 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.
+#
+project(qpidc)
+cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
+set (qpidc_version 0.5)
+
+# enable_testing()
+# set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+add_subdirectory(managementgen)
+# add_subdirectory(etc)
+add_subdirectory(src)
+# add_subdirectory(docs/api)
+# add_subdirectory(docs/man)
+#add_subdirectory(examples)
+
+# if (WIN32)
+# do something Microsoft specific
+# endif (WIN32)
+
+
+install(FILES LICENSE NOTICE README SSL RELEASE_NOTES DESIGN
+ xml/cluster.xml INSTALL-WINDOWS
+ DESTINATION .)
diff --git a/qpid/cpp/managementgen/CMakeLists.txt b/qpid/cpp/managementgen/CMakeLists.txt
new file mode 100644
index 0000000000..fa0c3f2909
--- /dev/null
+++ b/qpid/cpp/managementgen/CMakeLists.txt
@@ -0,0 +1,37 @@
+#
+# 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.
+#
+project(qpidc-qmfgen)
+cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
+
+install(PROGRAMS qmf-gen DESTINATION managementgen
+ COMPONENT all-source)
+install(FILES qmfgen/__init__.py
+ qmfgen/generate.py
+ qmfgen/schema.py
+ qmfgen/templates/Args.h
+ qmfgen/templates/Class.cpp
+ qmfgen/templates/Class.h
+ qmfgen/templates/Event.cpp
+ qmfgen/templates/Event.h
+ qmfgen/templates/Makefile.mk
+ qmfgen/templates/Package.cpp
+ qmfgen/templates/Package.h
+ qmfgen/management-types.xml
+ DESTINATION managementgen
+ COMPONENT all-source)
diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt
new file mode 100644
index 0000000000..6cb1fbe52a
--- /dev/null
+++ b/qpid/cpp/src/CMakeLists.txt
@@ -0,0 +1,446 @@
+#
+# 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.
+#
+
+include(FindBoost)
+include(FindDoxygen)
+
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in
+ ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+
+set (CMAKE_VERBOSE_MAKEFILE ON) # for dubugging
+
+# check if we generate source as part of the build
+# - rubygen generates the amqp spec and clustering
+# - managementgen generates the broker management code
+#
+# rubygen subdir is excluded from stable distributions
+# If the main AMQP spec is present, then check if ruby and python are
+# present, and if any sources have changed, forcing a re-gen of source code.
+
+set(AMQP_SPEC_DIR ${qpidc_SOURCE_DIR}/../specs)
+set(AMQP_SPEC ${AMQP_SPEC_DIR}/amqp.0-10-qpid-errata.xml)
+if (EXISTS ${AMQP_SPEC})
+ include(FindRuby)
+ include(FindPythonInterp)
+ if (NOT RUBY_EXECUTABLE)
+ message(FATAL_ERROR "Can't locate ruby, needed to generate source files.")
+ endif (NOT RUBY_EXECUTABLE)
+ if (NOT PYTHON_EXECUTABLE)
+ message(FATAL_ERROR "Can't locate python, needed to generate source files.")
+ endif (NOT PYTHON_EXECUTABLE)
+
+ set(specs ${AMQP_SPEC} ${qpidc_SOURCE_DIR}/xml/cluster.xml)
+ set(regen_amqp OFF)
+ set(rgen_dir ${qpidc_SOURCE_DIR}/rubygen)
+ file(GLOB_RECURSE rgen_progs ${rgen_dir}/*.rb)
+ # If any of the specs, or any of the sources used to generate code, change
+ # then regenerate the sources.
+ foreach (spec_file ${specs} ${rgen_progs})
+ if (${spec_file} IS_NEWER_THAN ${CMAKE_CURRENT_SOURCE_DIR}/rubygen.cmake)
+ set(regen_amqp ON)
+ endif (${spec_file} IS_NEWER_THAN ${CMAKE_CURRENT_SOURCE_DIR}/rubygen.cmake)
+ endforeach (spec_file ${specs})
+ if (regen_amqp)
+ message(STATUS "Regenerating AMQP protocol sources")
+ execute_process(COMMAND ${RUBY_EXECUTABLE} -I ${rgen_dir} ${rgen_dir}/generate gen ${specs} all ${CMAKE_CURRENT_SOURCE_DIR}/rubygen.cmake
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+ else (regen_amqp)
+ message(STATUS "No need to generate AMQP protocol sources")
+ endif (regen_amqp)
+
+ set(mgmt_specs ${AMQP_SPEC_DIR}/management-schema.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/qpid/acl/management-schema.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/qpid/cluster/management-schema.xml)
+ set(mgen_dir ${qpidc_SOURCE_DIR}/managementgen)
+ set(regen_mgmt OFF)
+ foreach (spec_file ${mgmt_specs})
+ if (${spec_file} IS_NEWER_THAN ${CMAKE_CURRENT_SOURCE_DIR}/managementgen.cmake)
+ message(STATUS "${spec_file} is newer")
+ set(regen_mgmt ON)
+ else (${spec_file} IS_NEWER_THAN ${CMAKE_CURRENT_SOURCE_DIR}/managementgen.cmake)
+ message(STATUS "${spec_file} is not newer")
+ endif (${spec_file} IS_NEWER_THAN ${CMAKE_CURRENT_SOURCE_DIR}/managementgen.cmake)
+ endforeach (spec_file ${mgmt_specs})
+ if (regen_mgmt)
+ message(STATUS, "Regenerating Qpid Management Framework sources")
+ execute_process(COMMAND ${PYTHON_EXECUTABLE} ${mgen_dir}/qmf-gen -c ${CMAKE_CURRENT_SOURCE_DIR}/managementgen.cmake -q -o gen/qmf ${mgmt_specs}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+ else (regen_mgmt)
+ message(STATUS "No need to generate Qpid Management Framework sources")
+ endif (regen_mgmt)
+
+else (EXISTS ${AMQP_SPEC})
+ message(STATUS "No AMQP spec... won't generate sources")
+endif (EXISTS ${AMQP_SPEC})
+
+# Pull in the names of the generated files, i.e. ${rgen_framing_srcs}
+include (rubygen.cmake)
+include (managementgen.cmake)
+
+find_program(HELP2MAN help2man DOC "Location of the help2man program")
+option(GEN_MANPAGES "Use help2man to generate man pages" ON)
+if (GEN_MANPAGES AND NOT HELP2MAN)
+ message(STATUS "Can't locate the help2man command; man pages will not be generated")
+endif (GEN_MANPAGES AND NOT HELP2MAN)
+
+# FindDoxygen module tries to locate doxygen and Graphviz dot
+option(GEN_DOXYGEN "Use doxygen to generate user documentation" ON)
+if (GEN_DOXYGEN AND NOT DOXYGEN_EXECUTABLE)
+ message(STATUS "Can't locate the doxygen command; user documentation will not be generated")
+endif (GEN_DOXYGEN AND NOT DOXYGEN_EXECUTABLE)
+
+find_program(VALGRIND valgrind DOC "Location of the valgrind program")
+option(ENABLE_VALGRIND "Use valgrind to detect run-time problems" ON)
+if (ENABLE_VALGRIND AND NOT VALGRIND)
+ message(STATUS "Can't locate the valgrind command; no run-time error detection")
+endif (ENABLE_VALGRIND AND NOT VALGRIND)
+
+set(QPIDC_MODULE_DIR "." CACHE STRING
+ "Directory to load client plug-in modules from")
+set(QPIDD_MODULE_DIR "." CACHE STRING
+ "Directory to load broker plug-in modules from")
+set(QPIDC_CONF_FILE "qpidc.conf" CACHE STRING
+ "Name of the Qpid client configuration file")
+set(QPIDD_CONF_FILE "qpidd.conf" CACHE STRING
+ "Name of the Qpid broker configuration file")
+
+option(ENABLE_WARNINGS "Enable lots of compiler warnings (recommended)" ON)
+if (ENABLE_WARNINGS AND CMAKE_COMPILER_IS_GNUCXX)
+ # Warnings: Enable as many as possible, keep the code clean. Please
+ # do not disable warnings or remove -Werror without discussing on
+ # qpid-dev list.
+ #
+ # The following warnings are deliberately omitted, they warn on valid code.
+ # -Wunreachable-code -Wpadded -Winline
+ # -Wshadow - warns about boost headers.
+ add_definitions(-Werror
+ -pedantic
+ -Wall
+ -Wextra
+ -Wno-shadow
+ -Wpointer-arith
+ -Wcast-qual
+ -Wcast-align
+ -Wno-long-long
+ -Wvolatile-register-var
+ -Winvalid-pch
+ -Wno-system-headers
+ -Woverloaded-virtual)
+endif (ENABLE_WARNINGS AND CMAKE_COMPILER_IS_GNUCXX)
+
+# Expand a bit from the basic Find_Boost; be specific about what's needed.
+find_package(Boost 1.34 REQUIRED
+ COMPONENTS date_time program_options thread unit_test_framework)
+if(NOT Boost_FOUND)
+ message(FATAL_ERROR "Boost C++ libraries not found. Please install or try setting BOOST_ROOT")
+endif(NOT Boost_FOUND)
+
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in
+ ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+
+include_directories( ${Boost_INCLUDE_DIR} )
+
+include_directories( . )
+include_directories( gen )
+include_directories( ${CMAKE_CURRENT_BINARY_DIR} )
+
+link_directories( ${Boost_LIBRARY_DIRS} )
+
+if (CMAKE_SYSTEM_NAME STREQUAL Windows)
+ if (MSVC)
+ add_definitions(
+ /D "_CRT_NONSTDC_NO_WARNINGS"
+ /D "NOMINMAX"
+ /D "WIN32_LEAN_AND_MEAN"
+ /D "_SCL_SECURE_NO_WARNINGS"
+ /wd4244
+ /wd4800
+ /wd4355
+ )
+ endif (MSVC)
+
+ set (libqpidcommon_platform_SOURCES
+ qpid/log/windows/SinkOptions.cpp
+ qpid/sys/windows/AsynchIO.cpp
+ qpid/sys/windows/FileSysDir.cpp
+ qpid/sys/windows/IocpPoller.cpp
+ qpid/sys/windows/IOHandle.cpp
+ qpid/sys/windows/LockFile.cpp
+ qpid/sys/windows/PollableCondition.cpp
+ qpid/sys/windows/Shlib.cpp
+ qpid/sys/windows/Socket.cpp
+ qpid/sys/windows/StrError.cpp
+ qpid/sys/windows/SystemInfo.cpp
+ qpid/sys/windows/Thread.cpp
+ qpid/sys/windows/Time.cpp
+ qpid/sys/windows/uuid.cpp
+ )
+ set (libqpidcommon_platform_LIBS
+ rpcrt4 ws2_32
+ )
+ set (libqpidbroker_platform_SOURCES
+ qpid/broker/windows/BrokerDefaults.cpp
+ qpid/broker/windows/SaslAuthenticator.cpp
+ )
+
+ set (libqpidclient_platform_SOURCES
+ qpid/client/windows/SaslFactory.cpp
+ )
+
+ set (qpidd_platform_SOURCES
+ windows/QpiddBroker.cpp
+ )
+
+else (CMAKE_SYSTEM_NAME STREQUAL Windows)
+
+ # POSIX (Non-Windows) platforms have a lot of overlap in sources; the only
+ # major difference is the poller module.
+ if (CMAKE_SYSTEM_NAME STREQUAL Linux)
+ set (qpid_poller_module qpid/sys/epoll/EpollPoller.cpp)
+ endif (CMAKE_SYSTEM_NAME STREQUAL Linux)
+ if (CMAKE_SYSTEM_NAME STREQUAL SunOS)
+ set (qpid_poller_module qpid/sys/solaris/ECFPoller.cpp)
+ endif (CMAKE_SYSTEM_NAME STREQUAL SunOS)
+
+ set (libqpidcommon_platform_SOURCES
+ qpid/sys/posix/AsynchIO.cpp
+ qpid/sys/posix/Fork.cpp
+ qpid/sys/posix/FileSysDir.cpp
+ qpid/sys/posix/IOHandle.cpp
+ qpid/sys/posix/LockFile.cpp
+ qpid/sys/posix/Mutex.cpp
+ qpid/sys/posix/PollableCondition.cpp
+ qpid/sys/posix/Shlib.cpp
+ qpid/log/posix/SinkOptions.cpp
+ qpid/sys/posix/Socket.cpp
+ qpid/sys/posix/StrError.cpp
+ qpid/sys/posix/SystemInfo.cpp
+ qpid/sys/posix/Thread.cpp
+ qpid/sys/posix/Time.cpp
+
+ ${qpid_poller_module}
+ )
+ set (libqpidcommon_platform_LIBS
+ ${CMAKE_DL_LIBS}
+ )
+
+ set (libqpidbroker_platform_SOURCES
+ qpid/broker/Daemon.cpp
+ qpid/broker/SaslAuthenticator.cpp
+ qpid/broker/SignalHandler.h
+ qpid/broker/SignalHandler.cpp
+ qpid/broker/posix/BrokerDefaults.cpp
+ )
+
+ set (libqpidclient_platform_SOURCES
+ qpid/client/SaslFactory.cpp
+ )
+
+ set (qpidd_platform_SOURCES
+ posix/QpiddBroker.cpp
+ )
+endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
+
+set (libqpidcommon_SOURCES
+ ${rgen_framing_srcs}
+ ${libqpidcommon_platform_SOURCES}
+ qpid/assert.cpp
+ qpid/Address.cpp
+ qpid/DataDir.cpp
+ qpid/Exception.cpp
+ qpid/Modules.cpp
+ qpid/Options.cpp
+ qpid/Plugin.cpp
+ qpid/RefCountedBuffer.cpp
+ qpid/SessionState.cpp
+ qpid/SessionId.cpp
+ qpid/StringUtils.cpp
+ qpid/Url.cpp
+ qpid/amqp_0_10/SessionHandler.cpp
+ qpid/framing/AccumulatedAck.cpp
+ qpid/framing/AMQBody.cpp
+ qpid/framing/AMQMethodBody.cpp
+ qpid/framing/AMQContentBody.cpp
+ qpid/framing/AMQFrame.cpp
+ qpid/framing/AMQHeaderBody.cpp
+ qpid/framing/AMQHeartbeatBody.cpp
+ qpid/framing/Array.cpp
+ qpid/framing/BodyHolder.cpp
+ qpid/framing/BodyHandler.cpp
+ qpid/framing/Buffer.cpp
+ qpid/framing/Endian.cpp
+ qpid/framing/FieldTable.cpp
+ qpid/framing/FieldValue.cpp
+ qpid/framing/FrameSet.cpp
+ qpid/framing/FrameDecoder.cpp
+ qpid/framing/ProtocolInitiation.cpp
+ qpid/framing/ProtocolVersion.cpp
+ qpid/framing/SendContent.cpp
+ qpid/framing/SequenceNumber.cpp
+ qpid/framing/SequenceNumberSet.cpp
+ qpid/framing/SequenceSet.cpp
+ qpid/framing/Proxy.cpp
+ qpid/framing/Uuid.cpp
+ qpid/framing/TransferContent.cpp
+ qpid/log/Logger.cpp
+ qpid/log/Options.cpp
+ qpid/log/OstreamOutput.cpp
+ qpid/log/Selector.cpp
+ qpid/log/Statement.cpp
+ qpid/management/Manageable.cpp
+ qpid/management/ManagementObject.cpp
+ qpid/sys/AggregateOutput.cpp
+ qpid/sys/AsynchIOHandler.cpp
+ qpid/sys/Dispatcher.cpp
+ qpid/sys/DispatchHandle.cpp
+ qpid/sys/Runnable.cpp
+ qpid/sys/Shlib.cpp
+ qpid/sys/Timer.cpp
+)
+add_library (qpidcommon SHARED ${libqpidcommon_SOURCES})
+target_link_libraries (qpidcommon ${libqpidcommon_platform_LIBS})
+set_target_properties (qpidcommon PROPERTIES
+ VERSION ${qpidc_version})
+
+set (libqpidclient_SOURCES
+ ${rgen_client_srcs}
+ ${libqpidclient_platform_SOURCES}
+ qpid/client/Bounds.cpp
+ qpid/client/Connection.cpp
+ qpid/client/ConnectionHandler.cpp
+ qpid/client/ConnectionImpl.cpp
+ qpid/client/ConnectionSettings.cpp
+ qpid/client/Connector.cpp
+ qpid/client/Demux.cpp
+ qpid/client/Dispatcher.cpp
+ qpid/client/FailoverManager.cpp
+ qpid/client/FailoverListener.h
+ qpid/client/FailoverListener.cpp
+ qpid/client/Future.cpp
+ qpid/client/FutureCompletion.cpp
+ qpid/client/FutureResult.cpp
+ qpid/client/HandlePrivate.h
+ qpid/client/LoadPlugins.cpp
+ qpid/client/LocalQueue.cpp
+ qpid/client/Message.cpp
+ qpid/client/MessageListener.cpp
+ qpid/client/MessageReplayTracker.cpp
+ qpid/client/QueueOptions.cpp
+ qpid/client/Results.cpp
+ qpid/client/SessionBase_0_10.cpp
+ qpid/client/SessionBase_0_10.h
+ qpid/client/SessionBase_0_10Access.h
+ qpid/client/ConnectionAccess.h
+ qpid/client/SessionImpl.cpp
+ qpid/client/StateManager.cpp
+ qpid/client/Subscription.cpp
+ qpid/client/SubscriptionImpl.cpp
+ qpid/client/SubscriptionManager.cpp
+)
+add_library (qpidclient SHARED ${libqpidclient_SOURCES})
+target_link_libraries (qpidclient qpidcommon)
+set_target_properties (qpidclient PROPERTIES VERSION ${qpidc_version})
+
+set (libqpidbroker_SOURCES
+ ${mgen_broker_cpp}
+ ${libqpidbroker_platform_SOURCES}
+ qpid/amqp_0_10/Connection.h
+ qpid/amqp_0_10/Connection.cpp
+ qpid/broker/Broker.cpp
+ qpid/broker/BrokerSingleton.cpp
+ qpid/broker/Exchange.cpp
+ qpid/broker/ExpiryPolicy.cpp
+ qpid/broker/Queue.cpp
+ qpid/broker/QueueCleaner.cpp
+ qpid/broker/QueueListeners.cpp
+ qpid/broker/PersistableMessage.cpp
+ qpid/broker/Bridge.cpp
+ qpid/broker/Connection.cpp
+ qpid/broker/ConnectionHandler.cpp
+ qpid/broker/ConnectionFactory.cpp
+ qpid/broker/DeliverableMessage.cpp
+ qpid/broker/DeliveryRecord.cpp
+ qpid/broker/DirectExchange.cpp
+ qpid/broker/DtxAck.cpp
+ qpid/broker/DtxBuffer.cpp
+ qpid/broker/DtxManager.cpp
+ qpid/broker/DtxTimeout.cpp
+ qpid/broker/DtxWorkRecord.cpp
+ qpid/broker/ExchangeRegistry.cpp
+ qpid/broker/FanOutExchange.cpp
+ qpid/broker/HeadersExchange.cpp
+ qpid/broker/IncompleteMessageList.cpp
+ qpid/broker/Link.cpp
+ qpid/broker/LinkRegistry.cpp
+ qpid/broker/Message.cpp
+ qpid/broker/MessageAdapter.cpp
+ qpid/broker/MessageBuilder.cpp
+ qpid/broker/MessageStoreModule.cpp
+ qpid/broker/NameGenerator.cpp
+ qpid/broker/NullMessageStore.cpp
+ qpid/broker/QueueBindings.cpp
+ qpid/broker/QueueEvents.cpp
+ qpid/broker/QueuePolicy.cpp
+ qpid/broker/QueueRegistry.cpp
+ qpid/broker/RateTracker.cpp
+ qpid/broker/RecoveryManagerImpl.cpp
+ qpid/broker/RecoveredEnqueue.cpp
+ qpid/broker/RecoveredDequeue.cpp
+ qpid/broker/RetryList.cpp
+ qpid/broker/SecureConnection.cpp
+ qpid/broker/SecureConnectionFactory.cpp
+ qpid/broker/SemanticState.h
+ qpid/broker/SemanticState.cpp
+ qpid/broker/SessionAdapter.cpp
+ qpid/broker/SessionState.h
+ qpid/broker/SessionState.cpp
+ qpid/broker/SessionManager.h
+ qpid/broker/SessionManager.cpp
+ qpid/broker/SessionContext.h
+ qpid/broker/SessionHandler.h
+ qpid/broker/SessionHandler.cpp
+ qpid/broker/System.cpp
+ qpid/broker/Timer.cpp
+ qpid/broker/TopicExchange.cpp
+ qpid/broker/TxAccept.cpp
+ qpid/broker/TxBuffer.cpp
+ qpid/broker/TxPublish.cpp
+ qpid/broker/Vhost.cpp
+ qpid/management/ManagementBroker.cpp
+ qpid/management/ManagementExchange.cpp
+ qpid/sys/TCPIOPlugin.cpp
+)
+add_library (qpidbroker SHARED ${libqpidbroker_SOURCES})
+target_link_libraries (qpidbroker qpidcommon)
+set_target_properties (qpidbroker PROPERTIES VERSION ${qpidc_version})
+if (MSVC)
+ set_target_properties (qpidbroker PROPERTIES COMPILE_FLAGS /wd4290)
+endif (MSVC)
+
+set (qpidd_SOURCES
+ ${qpidd_platform_SOURCES}
+ qpidd.cpp
+ qpidd.h
+)
+add_executable (qpidd ${qpidd_SOURCES})
+target_link_libraries (qpidd qpidbroker qpidcommon)
+
+# add_subdirectory(tests)
+
+message (STATUS end)
diff --git a/qpid/cpp/src/posix/QpiddBroker.cpp b/qpid/cpp/src/posix/QpiddBroker.cpp
index ba1ef640df..13440a2ee3 100644
--- a/qpid/cpp/src/posix/QpiddBroker.cpp
+++ b/qpid/cpp/src/posix/QpiddBroker.cpp
@@ -18,6 +18,7 @@
*
*/
+#include "config.h"
#include "qpidd.h"
#include "qpid/Exception.h"
#include "qpid/broker/Broker.h"
@@ -37,8 +38,8 @@ using qpid::broker::Daemon;
BootstrapOptions::BootstrapOptions(const char* argv0)
: qpid::Options("Options"),
- common("", CONF_FILE),
- module(MODULE_DIR),
+ common("", QPIDD_CONF_FILE),
+ module(QPIDD_MODULE_DIR),
log(argv0)
{
add(common);
diff --git a/qpid/cpp/src/qpid/CommonImportExport.h b/qpid/cpp/src/qpid/CommonImportExport.h
index 47872646d9..02c06ed7af 100644
--- a/qpid/cpp/src/qpid/CommonImportExport.h
+++ b/qpid/cpp/src/qpid/CommonImportExport.h
@@ -21,7 +21,7 @@
*/
#if defined(WIN32) && !defined(QPID_DECLARE_STATIC)
-#if defined(COMMON_EXPORT)
+#if defined(COMMON_EXPORT) || defined (qpidcommon_EXPORTS)
#define QPID_COMMON_EXTERN __declspec(dllexport)
#else
#define QPID_COMMON_EXTERN __declspec(dllimport)
diff --git a/qpid/cpp/src/qpid/broker/BrokerImportExport.h b/qpid/cpp/src/qpid/broker/BrokerImportExport.h
index 2edc90993e..4edf8c9844 100644
--- a/qpid/cpp/src/qpid/broker/BrokerImportExport.h
+++ b/qpid/cpp/src/qpid/broker/BrokerImportExport.h
@@ -21,7 +21,7 @@
*/
#if defined(WIN32) && !defined(QPID_BROKER_STATIC)
-#if defined(BROKER_EXPORT)
+#if defined(BROKER_EXPORT) || defined (qpidbroker_EXPORTS)
#define QPID_BROKER_EXTERN __declspec(dllexport)
#else
#define QPID_BROKER_EXTERN __declspec(dllimport)
diff --git a/qpid/cpp/src/qpid/client/ClientImportExport.h b/qpid/cpp/src/qpid/client/ClientImportExport.h
index 0e6e5660d6..3b311655ab 100644
--- a/qpid/cpp/src/qpid/client/ClientImportExport.h
+++ b/qpid/cpp/src/qpid/client/ClientImportExport.h
@@ -21,7 +21,7 @@
*/
#if defined(WIN32) && !defined(QPID_DECLARE_STATIC)
-#if defined(CLIENT_EXPORT)
+#if defined(CLIENT_EXPORT) || defined (qpidclient_EXPORTS)
#define QPID_CLIENT_EXTERN __declspec(dllexport)
#else
#define QPID_CLIENT_EXTERN __declspec(dllimport)
diff --git a/qpid/cpp/src/qpid/client/LoadPlugins.cpp b/qpid/cpp/src/qpid/client/LoadPlugins.cpp
index b395226859..eca6aa47fc 100644
--- a/qpid/cpp/src/qpid/client/LoadPlugins.cpp
+++ b/qpid/cpp/src/qpid/client/LoadPlugins.cpp
@@ -19,6 +19,7 @@
*
*/
+#include "config.h"
#include "qpid/Modules.h"
#include "qpid/sys/Shlib.h"
#include <string>
@@ -30,9 +31,9 @@ namespace {
struct LoadtimeInitialise {
LoadtimeInitialise() {
- qpid::ModuleOptions moduleOptions(MODULE_DIR);
+ qpid::ModuleOptions moduleOptions(QPIDC_MODULE_DIR);
string defaultPath (moduleOptions.loadDir);
- moduleOptions.parse (0, 0, CONF_FILE, true);
+ moduleOptions.parse (0, 0, QPIDC_CONF_FILE, true);
for (vector<string>::iterator iter = moduleOptions.load.begin();
iter != moduleOptions.load.end();
diff --git a/qpid/cpp/src/tests/CMakeLists.txt b/qpid/cpp/src/tests/CMakeLists.txt
new file mode 100644
index 0000000000..273231f0df
--- /dev/null
+++ b/qpid/cpp/src/tests/CMakeLists.txt
@@ -0,0 +1,253 @@
+
+########### install files ###############
+
+
+
+
+#original Makefile.am contents follow:
+
+##
+## 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.
+##
+#
+#AM_CXXFLAGS = $(WARNING_CFLAGS) -DBOOST_TEST_DYN_LINK
+#INCLUDES = -I$(srcdir)/.. -I$(srcdir)/../gen -I$(top_builddir)/src/gen
+#
+#abs_builddir=@abs_builddir@
+#extra_libs =
+#lib_client = $(abs_builddir)/../libqpidclient.la
+#lib_common = $(abs_builddir)/../libqpidcommon.la
+#lib_broker = $(abs_builddir)/../libqpidbroker.la
+#lib_console = $(abs_builddir)/../libqmfconsole.la
+## lib_amqp_0_10 = $(abs_builddir)/../libqpidamqp_0_10.la
+#
+##
+## Initialize variables that are incremented with +=
+##
+#check_PROGRAMS=
+#check_LTLIBRARIES=
+#TESTS=
+#EXTRA_DIST=
+#CLEANFILES=
+#
+##
+## Unit test program
+##
+## Unit tests are built as a single program to reduce valgrind overhead
+## when running the tests. If you want to build a subset of the tests do
+## rm -f unit_test; make unit_test unit_test_OBJECTS="unit_test.o SelectedTest.o"
+##
+#
+#TESTS+=unit_test
+#check_PROGRAMS+=unit_test
+#unit_test_LDADD=-lboost_unit_test_framework -lboost_regex \
+# $(lib_client) $(lib_broker) $(lib_console)
+#
+#unit_test_SOURCES= unit_test.cpp unit_test.h \
+# BrokerFixture.h SocketProxy.h \
+# exception_test.cpp \
+# RefCounted.cpp \
+# SessionState.cpp Blob.cpp logging.cpp \
+# AsyncCompletion.cpp \
+# Url.cpp Uuid.cpp \
+# Shlib.cpp FieldValue.cpp FieldTable.cpp Array.cpp \
+# QueueOptionsTest.cpp \
+# InlineAllocator.cpp \
+# InlineVector.cpp \
+# ClientSessionTest.cpp \
+# SequenceSet.cpp \
+# StringUtils.cpp \
+# IncompleteMessageList.cpp \
+# RangeSet.cpp \
+# AtomicValue.cpp \
+# QueueTest.cpp \
+# AccumulatedAckTest.cpp \
+# DtxWorkRecordTest.cpp \
+# DeliveryRecordTest.cpp \
+# ExchangeTest.cpp \
+# HeadersExchangeTest.cpp \
+# MessageTest.cpp \
+# QueueRegistryTest.cpp \
+# QueuePolicyTest.cpp \
+# FramingTest.cpp \
+# HeaderTest.cpp \
+# SequenceNumberTest.cpp \
+# TimerTest.cpp \
+# TopicExchangeTest.cpp \
+# TxBufferTest.cpp \
+# TxPublishTest.cpp \
+# MessageBuilderTest.cpp \
+# ConnectionOptions.h \
+# ForkedBroker.h \
+# ManagementTest.cpp \
+# MessageReplayTracker.cpp \
+# ConsoleTest.cpp
+#
+#if HAVE_XML
+#unit_test_SOURCES+= XmlClientSessionTest.cpp
+#endif
+#
+#
+## Disabled till we move to amqp_0_10 codec.
+## amqp_0_10/serialize.cpp allSegmentTypes.h \
+## amqp_0_10/ProxyTemplate.cpp \
+## amqp_0_10/apply.cpp \
+## amqp_0_10/Map.cpp \
+## amqp_0_10/handlers.cpp
+#
+#
+#check_LTLIBRARIES += libshlibtest.la
+#libshlibtest_la_LDFLAGS = -module -rpath $(abs_builddir)
+#libshlibtest_la_SOURCES = shlibtest.cpp
+#
+#include cluster.mk
+#if SSL
+#include ssl.mk
+#endif
+#
+##
+## Other test programs
+##
+#check_PROGRAMS+=perftest
+#perftest_SOURCES=perftest.cpp test_tools.h TestOptions.h ConnectionOptions.h
+#perftest_LDADD=$(lib_client)
+#
+#check_PROGRAMS+=txtest
+#txtest_SOURCES=txtest.cpp TestOptions.h ConnectionOptions.h
+#txtest_LDADD=$(lib_client)
+#
+#check_PROGRAMS+=latencytest
+#latencytest_SOURCES=latencytest.cpp TestOptions.h ConnectionOptions.h
+#latencytest_LDADD=$(lib_client)
+#
+#check_PROGRAMS+=echotest
+#echotest_SOURCES=echotest.cpp TestOptions.h ConnectionOptions.h
+#echotest_LDADD=$(lib_client)
+#
+#check_PROGRAMS+=client_test
+#client_test_SOURCES=client_test.cpp TestOptions.h ConnectionOptions.h
+#client_test_LDADD=$(lib_client)
+#
+#check_PROGRAMS+=topic_listener
+#topic_listener_SOURCES=topic_listener.cpp TestOptions.h ConnectionOptions.h
+#topic_listener_LDADD=$(lib_client)
+#
+#check_PROGRAMS+=topic_publisher
+#topic_publisher_SOURCES=topic_publisher.cpp TestOptions.h ConnectionOptions.h
+#topic_publisher_LDADD=$(lib_client)
+#
+#check_PROGRAMS+=publish
+#publish_SOURCES=publish.cpp TestOptions.h ConnectionOptions.h
+#publish_LDADD=$(lib_client)
+#
+#check_PROGRAMS+=consume
+#consume_SOURCES=consume.cpp TestOptions.h ConnectionOptions.h
+#consume_LDADD=$(lib_client)
+#
+#check_PROGRAMS+=header_test
+#header_test_SOURCES=header_test.cpp TestOptions.h ConnectionOptions.h
+#header_test_LDADD=$(lib_client)
+#
+#check_PROGRAMS+=failover_soak
+#failover_soak_SOURCES=failover_soak.cpp ForkedBroker.h
+#failover_soak_LDADD=$(lib_client)
+#
+#check_PROGRAMS+=declare_queues
+#declare_queues_SOURCES=declare_queues.cpp
+#declare_queues_LDADD=$(lib_client)
+#
+#check_PROGRAMS+=replaying_sender
+#replaying_sender_SOURCES=replaying_sender.cpp
+#replaying_sender_LDADD=$(lib_client)
+#
+#check_PROGRAMS+=resuming_receiver
+#resuming_receiver_SOURCES=resuming_receiver.cpp
+#resuming_receiver_LDADD=$(lib_client)
+#
+#check_PROGRAMS+=txshift
+#txshift_SOURCES=txshift.cpp TestOptions.h ConnectionOptions.h
+#txshift_LDADD=$(lib_client)
+#
+#check_PROGRAMS+=txjob
+#txjob_SOURCES=txjob.cpp TestOptions.h ConnectionOptions.h
+#txjob_LDADD=$(lib_client)
+#
+#check_PROGRAMS+=receiver
+#receiver_SOURCES=receiver.cpp TestOptions.h ConnectionOptions.h
+#receiver_LDADD=$(lib_client)
+#
+#check_PROGRAMS+=sender
+#sender_SOURCES=sender.cpp TestOptions.h ConnectionOptions.h
+#sender_LDADD=$(lib_client)
+#
+#
+#TESTS_ENVIRONMENT = VALGRIND=$(VALGRIND) srcdir=$(srcdir) QPID_DATA_DIR= BOOST_TEST_SHOW_PROGRESS=yes $(srcdir)/run_test
+#
+#system_tests = client_test quick_perftest quick_topictest run_header_test quick_txtest
+#TESTS += start_broker $(system_tests) python_tests stop_broker run_federation_tests run_acl_tests
+#
+#EXTRA_DIST += \
+# run_test vg_check \
+# run-unit-tests start_broker python_tests stop_broker \
+# quick_topictest \
+# quick_perftest \
+# quick_txtest \
+# topictest \
+# run_header_test \
+# header_test.py \
+# ssl_test \
+# config.null \
+# ais_check \
+# run_federation_tests \
+# run_acl_tests \
+# .valgrind.supp \
+# MessageUtils.h \
+# TestMessageStore.h \
+# TxMocks.h \
+# start_cluster stop_cluster restart_cluster
+#
+#check_LTLIBRARIES += libdlclose_noop.la
+#libdlclose_noop_la_LDFLAGS = -module -rpath $(abs_builddir)
+#libdlclose_noop_la_SOURCES = dlclose_noop.c
+#
+#CLEANFILES+=valgrind.out *.log *.vglog* dummy_test $(unit_wrappers)
+#
+## FIXME aconway 2008-05-23: Disabled interop_runner because it uses
+## the obsolete Channel class. Convert to Session and re-enable.
+##
+## check_PROGRAMS += interop_runner
+#
+## interop_runner_SOURCES = \
+## interop_runner.cpp \
+## SimpleTestCaseBase.cpp \
+## BasicP2PTest.cpp \
+## BasicPubSubTest.cpp \
+## SimpleTestCaseBase.h \
+## BasicP2PTest.h \
+## BasicPubSubTest.h \
+## TestCase.h \
+## TestOptions.h ConnectionOptions.h
+## interop_runner_LDADD = $(lib_client) $(lib_common) $(extra_libs)
+#
+#
+## Longer running stability tests, not run by default check: target.
+## Not run under valgrind, too slow
+#LONG_TESTS=fanout_perftest shared_perftest multiq_perftest topic_perftest run_failover_soak
+#EXTRA_DIST+=$(LONG_TESTS) run_perftest
+#check-long:
+# $(MAKE) check TESTS="start_broker $(LONG_TESTS) stop_broker" VALGRIND=
diff --git a/qpid/cpp/src/windows/QpiddBroker.cpp b/qpid/cpp/src/windows/QpiddBroker.cpp
index 6714ac2e01..1b548a6e63 100644
--- a/qpid/cpp/src/windows/QpiddBroker.cpp
+++ b/qpid/cpp/src/windows/QpiddBroker.cpp
@@ -19,6 +19,7 @@
*
*/
+#include "config.h"
#include "qpidd.h"
#include "qpid/Exception.h"
#include "qpid/Options.h"
@@ -29,19 +30,12 @@
#include <iostream>
-// These need to be made something sensible, like reading a value from
-// the registry. But for now, get things going with a local definition.
-namespace {
-const char *CONF_FILE = "qpid_broker.conf";
-const char *MODULE_DIR = ".";
-}
-
using namespace qpid::broker;
BootstrapOptions::BootstrapOptions(const char* argv0)
: qpid::Options("Options"),
- common("", CONF_FILE),
- module(MODULE_DIR),
+ common("", QPIDD_CONF_FILE),
+ module(QPIDD_MODULE_DIR),
log(argv0)
{
add(common);
@@ -56,8 +50,8 @@ struct QpiddWindowsOptions : public QpiddOptionsPrivate {
QpiddOptions::QpiddOptions(const char* argv0)
: qpid::Options("Options"),
- common("", CONF_FILE),
- module(MODULE_DIR),
+ common("", QPIDD_CONF_FILE),
+ module(QPIDD_MODULE_DIR),
log(argv0)
{
add(common);