Dear users at Cmake
It could be that I don't have understood the linking process when building the project by cmake. The project has three dependencies: (1) Boost, (2) (Apache) Avro and (3) Botan. After issuing the following command to be able to use the nmake command from Visual Studio: D:\...\build>cmake -G "NMake Makefiles" -DKAA_INSTALL_PATH="D:\kaa\kaaSDK" > -DKAA_DEBUG_ENABLED=1 .. > It ran without problems, except minor warnings like WARNING: Target "kaacpp" requests linking to directory > "D:/kaa/kaaBuild/avro_1.8.0/lang/c++/build.win". Targets may link only to > libraries. CMake is dropping the item. > => note: full log is at the bottom of this mail (appendix 1). but when i call nmake after, it immediately throws up error: D:\...\build>nmake > > Microsoft (R) Program Maintenance Utility Version 14.00.23506.0 > Copyright (C) Microsoft Corporation. All rights reserved. > > Scanning dependencies of target kaacpp_o > [ 1%] Building CXX object > CMakeFiles/kaacpp_o.dir/impl/event/registration/EndpointRegistrationManager.cpp.obj > EndpointRegistrationManager.cpp > D:\kaa\kaa-cpp-ep-sdk-aXrMkhHEE2BrPBehV_Vbxym2MfU\kaa/gen/EndpointGen.hpp(26): > fatal error C1083: Cannot open include file: 'avro/Specific.hh': No such > file or directory > NMAKE : fatal error U1077: 'C:\PROGRA~2\VISUAL~1.0\VC\bin\cl.exe' : return > code '0x2' > Stop. > NMAKE : fatal error U1077: '"C:\Program Files (x86)\Visual Studio > 14.0\VC\BIN\nmake.exe"' : return code '0x2' > Stop. > I have checked the file, and there is the following includes #include <sstream> > #include "boost/any.hpp" > #include "avro/Specific.hh" <-------- error line > #include "avro/Encoder.hh" > #include "avro/Decoder.hh" > My idea is that the linking of the avro library is not set up correctly since the error got thrown after including a Boost file. Here is a fragment of my cmakelists.txt file where Avro got added and how the packages got found/added # AVRO_ROOT_DIR - Set this variable to the root installation of > Avro C++ if the module has problems finding the proper installation path. > # AVRO_LIBRARY - The Avro C++ libraries > # AVRO_INCLUDE_DIR - The location of Avro C++ headers > set(AVRO_ROOT_DIR D:/kuleuven/thesis/kaa/kaaBuild/avro_1.8.0/lang/c++) > set(AVRO_LIBRARY > D:/kuleuven/thesis/kaa/kaaBuild/avro_1.8.0/lang/c++/build.win) > set(AVRO_INCLUDE_DIR > D:/kuleuven/thesis/kaa/kaaBuild/avro_1.8.0/lang/c++/avro) > > some contents omitte > > # > # Find third-party dependencies > # > find_package (Boost 1.54 REQUIRED COMPONENTS log system thread) > find_package (Avro REQUIRED) > find_package (Botan REQUIRED) > => note: full cmakelist.txt file is added as appendix2 After that, i have issued the following messaging message("--- AVRO: Found? " ${AVRO_FOUND}) <----- displays "--- AVRO: > Found? TRUE" > message(${AVRO_LIBRARIES}) <----- displays " > D:/kaa/kaaBuild/avro_1.8.0/lang/c++/build.win" So, the library can be found. However, it surprises me that the specific file, Specific.hh could not be found while it is in the include directory, AVRO_INCLUDE_DIR (according to the findavrocpp.cmake <https://github.com/Produban/log2kafka/blob/master/cmake/FindAvroCPP.cmake#L33> it's used for headers). I have issued the following PowerShell command to show that the file is in the given directory PS D:\kaa\kaaBuild\avro_1.8.0\lang\c++\avro> Get-childitem Specific.hh > > Directory: D:\kaa\kaaBuild\avro_1.8.0\lang\c++\avro > > Mode LastWriteTime Length Name > ---- ------------- ------ ---- > -a---- 2/9/2012 7:11 PM 7428 Specific.hh > So it could be that it is not linking correctly. Is the cmakelist.txt incorrect or is cmake unable to link the right header file without throwing an error ? Is there a solution for this ? I don't have a clue where to find the cause of the linking problems so i can solve it. If you need more information, please check the appendix 1 & 2 here below. If these isn't sufficient enough, please inform me which information i can provide. Sincerely - kg *APPENDIX 1: output of cmake command* D:\kaa\kaa-cpp-ep-sdk-aXrMkhHEE2BrPBehV_Vbxym2MfU\build>cmake -G "NMake > Makefiles" -DKAA_INSTALL_PATH="D:\kaa\kaaSDK" -DKAA_DEBUG_ENABLED=1 .. > ================================== > CMake Warning (dev) at CMakeLists.txt:73 (if): > Policy CMP0054 is not set: Only interpret if() arguments as variables or > keywords when unquoted. Run "cmake --help-policy CMP0054" for policy > details. Use the cmake_policy command to set the policy and suppress > this > warning. > > Quoted variables like "MSVC" will no longer be dereferenced when the > policy > is set to NEW. Since the policy is not set the OLD behavior will be > used. > This warning is for project developers. Use -Wno-dev to suppress it. > > ================================== > KAA_MAX_LOG_LEVEL=6 > EVENTS ENABLED > NOTIFICATIONS ENABLED > CONFIGURATION ENABLED > LOGGING ENABLED > OPERATION_TCP_CHANNEL ENABLED > OPERATION_LONG_POLL_CHANNEL ENABLED > OPERATION_HTTP_CHANNEL ENABLED > BOOTSTRAP_HTTP_CHANNEL ENABLED > CONNECTIVITY_CHECKER ENABLED > KAA_THREADSAFE ENABLED > ================================== > -- Boost version: 1.60.0 > -- Found the following Boost libraries: > -- log > -- system > -- thread > -- date_time > -- log_setup > -- filesystem > -- regex > -- chrono > -- atomic > > Looking for Avro C++ headers and libraries > -- Root dir: D:/kaa/kaaBuild/avro_1.8.0/lang/c++ > -- Include directories: D:/kaa/kaaBuild/avro_1.8.0/lang/c++/avro > -- Libraries: D:/kaa/kaaBuild/avro_1.8.0/lang/c++/build.win > -- FindBotan check > -- BOTAN_HOME is not empty: "D:/kaa/kaaBuild/botan-1.11.29" > -- Looking for botan in D:/kaa/kaaBuild/botan-1.11.29 > -- Include directory: D:/kaa/kaaBuild/botan-1.11.29/build/include > -- Library: D:/kaa/kaaBuild/botan-1.11.29/botan.lib > > checking libraries > --- BOTAN: Found? YES > D:/kaa/kaaBuild/botan-1.11.29/botan.lib > --- AVRO: Found? TRUE > D:/kaa/kaaBuild/avro_1.8.0/lang/c++/build.win > --- BOOST: Found? > > optimizedD:/software/boost_1_60_32/lib32-msvc-14.0/boost_log-vc140-mt-1_60.libdebugD:/software/boost_1_60_32/lib32-msvc-14.0/boost_log-vc140-mt-gd-1_60.liboptimizedD:/software/boost_1_60_32/lib32-msvc-14.0/boost_system-vc140-mt-1_60.libdebugD:/software/boost_1_60_32/lib32-msvc-14.0/boost_system-vc140-mt-gd-1_60.liboptimizedD:/software/boost_1_60_32/lib32-msvc-14.0/boost_thread-vc140-mt-1_60.libdebugD:/software/boost_1_60_32/lib32-msvc-14.0/boost_thread-vc140-mt-gd-1_60.liboptimizedD:/software/boost_1_60_32/lib32-msvc-14.0/boost_date_time-vc140-mt-1_60.libdebugD:/software/boost_1_60_32/lib32-msvc-14.0/boost_date_time-vc140-mt-gd-1_60.liboptimizedD:/software/boost_1_60_32/lib32-msvc-14.0/boost_log_setup-vc140-mt-1_60.libdebugD:/software/boost_1_60_32/lib32-msvc-14.0/boost_log_setup-vc140-mt-gd-1_60.liboptimizedD:/software/boost_1_60_32/lib32-msvc-14.0/boost_filesystem-vc140-mt-1_60.libdebugD:/software/boost_1_60_32/lib32-msvc-14.0/boost_filesystem-vc140-mt-gd-1_60.liboptimizedD:/software/boost_1_60_32/lib32-msvc-14.0/boost_regex-vc140-mt-1_60.libdebugD:/software/boost_1_60_32/lib32-msvc-14.0/boost_regex-vc140-mt-gd-1_60.liboptimizedD:/software/boost_1_60_32/lib32-msvc-14.0/boost_chrono-vc140-mt-1_60.libdebugD:/software/boost_1_60_32/lib32-msvc-14.0/boost_chrono-vc140-mt-gd-1_60.liboptimizedD:/software/boost_1_60_32/lib32-msvc-14.0/boost_atomic-vc140-mt-1_60.libdebugD:/software/boost_1_60_32/lib32-msvc-14.0/boost_atomic-vc140-mt-gd-1_60.lib > done checking libraries > > -- KAA WILL BE INSTALLED TO C:/Program Files (x86)/Kaa-cpp > -- Configuring done > WARNING: Target "kaacpp" requests linking to directory > "D:/kaa/kaaBuild/avro_1.8.0/lang/c++/build.win". Targets may link only to > libraries. CMake is dropping the item. > -- Generating done > -- Build files have been written to: > D:/kaa/kaa-cpp-ep-sdk-aXrMkhHEE2BrPBehV_Vbxym2MfU/build > *APPENDIX 2: cmakelists.txt file* File consists of 300+ lines, so uploaded it. See upload on my google drive: https://drive.google.com/open?id=0B-1WvUfrCC3MUHR5dGZmVUdhY0U // EOF
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake