0

I'm currently going through the process of installing the Qpid broker on Windows. I've already installed CMake, boost, and python and I've added the environment variable for the root of the Boost directory. I'm now at the step where Qpid client is to be build from a source distribution (Visual Studio 12). After having changed into the directory qpid\cpp I ran the command: cmake -G "Visual Studio 12 2013". Toward the end of the log, I got the error:

CMake Error at CMakeLists.txt:73 (install): install FILES given no DESTINATION!

So I checked the CMakeLists.txt file and saw that lines 73 - 76 have:

install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.txt
         DESTINATION ${QPID_INSTALL_EXAMPLESDIR}
         COMPONENT ${QPID_COMPONENT_EXAMPLES})

I think the problem could be related to the fact that EXAMPLESDIR is being used but the INSTALL_WINDOWS text file instructs you to go into the cpp directory which is located in examples (the full path is: qpid-cpp-0.34/bindings/qmf2/examples/cpp/)

This is the first time I've had to work with qpid or messaging brokers so I have a limited understanding of what's going on here. What destination should I be providing for the install files?

The CMakeLists.txt file is below for reference:

#
# 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(qmf2_examples)
cmake_minimum_required(VERSION 2.4.0 FATAL_ERROR)
if(COMMAND cmake_policy)
  cmake_policy(SET CMP0003 NEW)
endif(COMMAND cmake_policy)

include_directories(${CMAKE_BINARY_DIR}/include)
include_directories(${CMAKE_SOURCE_DIR}/include)

# Shouldn't need this... but there are still client header inclusions
# of Boost. When building examples at an install site, the Boost files
# should be locatable aside from these settings.
# So set up to find the headers, find the libs at link time, but dynamically
# link them all and clear the CMake Boost library names to avoid adding them to
# the project files.
include_directories( ${Boost_INCLUDE_DIR} )
link_directories( ${Boost_LIBRARY_DIRS} )

# Visual Studio needs some Windows-specific simplifications.
if (MSVC)
  add_definitions( /D "NOMINMAX" /D "WIN32_LEAN_AND_MEAN" /D "BOOST_ALL_DYN_LINK" )
  # On Windows, prevent the accidental inclusion of Boost headers from
  # autolinking in the Boost libs. There should be no direct references to
  # Boost in the examples, and references via qpidclient/qpidcommon are
  # resolved in the Qpid libs.
  add_definitions( /D "BOOST_ALL_NO_LIB" )
endif (MSVC)

# There are numerous duplicate names within the examples. Since all target
# names must be unique, define a macro to prepend a prefix and manage the
# actual names.
# There can be an optional arguments at the end: libs to include
macro(add_example subdir example)
  add_executable(${subdir}_${example} ${example}.cpp)
  set_target_properties(${subdir}_${example} PROPERTIES OUTPUT_NAME ${example})
  if (${ARGC} GREATER 2)
    target_link_libraries(${subdir}_${example} ${ARGN} qpidmessaging qpidtypes
                          ${_boost_libs_needed})
  else (${ARGC} GREATER 2)
    target_link_libraries(${subdir}_${example} qpidmessaging qpidtypes
                          ${_boost_libs_needed})
  endif (${ARGC} GREATER 2)
endmacro(add_example)

macro(add_installed_example subdir example)
  add_example(${subdir} ${example} ${ARGN})

  # For installs, don't install the built example; that would be pointless.
  # Install the things a user needs to build the example on-site.
  install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/${example}.cpp
           DESTINATION ${QPID_INSTALL_EXAMPLESDIR}/${subdir}
           COMPONENT ${QPID_COMPONENT_EXAMPLES})
endmacro(add_installed_example)

install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.txt
         DESTINATION ${QPID_INSTALL_EXAMPLESDIR}
         COMPONENT ${QPID_COMPONENT_EXAMPLES})

add_installed_example(qmf2 agent qmf2)
if (NOT WIN32)
  # uses posix select()
  add_installed_example(qmf2 event_driven_list_agents qmf2)
endif (NOT WIN32)
add_installed_example(qmf2 list_agents qmf2)
add_installed_example(qmf2 print_events qmf2)
usr1234567
  • 21,601
  • 16
  • 108
  • 128
loremIpsum1771
  • 2,497
  • 5
  • 40
  • 87

0 Answers0