From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,SPF_PASS autolearn=ham version=3.2.5 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mail.ru; s=mail2; h=Content-Type:Subject:To:MIME-Version:From:Date:Message-ID; bh=5IchfS/PQvIAHXRHCD4fxGll4VyZSl7VSIWJIRgMTog=; b=UCldZzBJO6b/QkbbT8vUvKze4kekgCSxor+pUcqyxUhXDoQDGCcVrdNm4+nsfJsFu+GAl7KbN+Sff6I5yxVEyjLfOVxpvAnRIB9jjK1uB3OrobAlpOLmA/Y6RkGe6s9kXjSUobHMRGi4MSye9p88mHPrgdbk/RpUvKVYZFCQS5g=; Message-ID: <5337CB3F.9010305@mail.ru> Date: Sun, 30 Mar 2014 11:43:59 +0400 From: Vladimir Karpinsky User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: ALT Linux Community general discussions Content-Type: multipart/mixed; boundary="------------010700020204020103010009" X-Spam: Not detected X-Mras: Ok Subject: [Comm] CMake X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Community general discussions List-Id: ALT Linux Community general discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Mar 2014 07:44:07 -0000 Archived-At: List-Archive: List-Post: This is a multi-part message in MIME format. --------------010700020204020103010009 Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit Здравствуйте! Помогите, пожалуйста, разобраться со сборкой пакета с помощью CMake. Существует пакет GMT (http://gmt.soest.hawaii.edu), предназначенный для работы с картографическими данными, нанесением на карты всяких графиков и т.п. (GMT is an open source collection of about 80 command-line tools for manipulating geographic and Cartesian data sets (including filtering, trend fitting, gridding, projecting, etc.) and producing PostScript illustrations...). Установка этого пакета всегда была витьеватой, а в последнее время они ещё перешли на cmake, и у меня совсем перестало получаться. В инструкции велено сделать следующее: 1. $ svn co svn://gmtserver.soest.hawaii.edu/gmt5/trunk gmt5-dev 2. $ cd gmt5-dev 3. $ cp cmake/ConfigUserTemplate.cmake cmake/ConfigUser.cmake 4. Edit *cmake/ConfigUser.cmake* [see comments in the file]. Then: 5. $ mkdir build 6. $ cd build 7. $ cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=RelWithDebInfo .. 8. $ make -jx До 6-го пункта включительно всё прошло штатно, а в п.7. получил ошибку: -- The CXX compiler identification is unknown -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- broken CMake Error at /usr/share/CMake/Modules/CMakeTestCXXCompiler.cmake:54 (message): The C++ compiler "/usr/bin/c++" is not able to compile a simple test program. It fails with the following output: Change Dir: /home/karp/gmt/gmt-5.1.1/build/CMakeFiles/CMakeTmp Run Build Command:/usr/bin/gmake "cmTryCompileExec2941133113/fast" /usr/bin/gmake -f CMakeFiles/cmTryCompileExec2941133113.dir/build.make CMakeFiles/cmTryCompileExec2941133113.dir/build gmake[1]: Вход в каталог `/home/karp/gmt/gmt-5.1.1/build/CMakeFiles/CMakeTmp' /usr/bin/cmake -E cmake_progress_report /home/karp/gmt/gmt-5.1.1/build/CMakeFiles/CMakeTmp/CMakeFiles 1 Building CXX object CMakeFiles/cmTryCompileExec2941133113.dir/testCXXCompiler.cxx.o /usr/bin/c++ -o CMakeFiles/cmTryCompileExec2941133113.dir/testCXXCompiler.cxx.o -c /home/karp/gmt/gmt-5.1.1/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx /usr/bin/x86_64-alt-linux-g++: No such file or directory gmake[1]: *** [CMakeFiles/cmTryCompileExec2941133113.dir/testCXXCompiler.cxx.o] Ошибка 1 gmake[1]: Выход из каталога `/home/karp/gmt/gmt-5.1.1/build/CMakeFiles/CMakeTmp' gmake: *** [cmTryCompileExec2941133113/fast] Ошибка 2 Углядев, что не находится /usr/bin/x86_64-alt-linux-g++, я подумал, что cmake хочет видеть g++ с таким именем и сделал симлинк: /usr/bin/x86_64-alt-linux-g++ -> /usr/bin/g++ Но последующий запуск выдаёт уже: /usr/bin/x86_64-alt-linux-x86_64-alt-linux-g++: No such file or directory ??! Насколько я понимаю, руководство к действию для cmake находится в файле CMakeLists.txt, который прилагаю к этому письму. -- С уважением, Владимир. --------------010700020204020103010009 Content-Type: text/plain; charset=windows-1251; name="CMakeLists.txt" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="CMakeLists.txt" # # $Id: CMakeLists.txt 12910 2014-02-17 21:27:37Z fwobbe $ # # Copyright (c) 1991-2014 by P. Wessel, W. H. F. Smith, R. Scharroo, J. Luis, and F. Wobbe # See LICENSE.TXT file for copying and redistribution conditions. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; version 3 or any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # Contact info: gmt.soest.hawaii.edu #------------------------------------------------------------------------------- # # To modify the cmake process: Edit your cmake/ConfigUser.cmake file # # To build out-of-source do (example): # # mkdir build # cd build # cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. # # CMAKE_BUILD_TYPE can be: empty, Debug, Release, RelWithDebInfo or MinSizeRel # # cmake creates a new file cmake/ConfigUser.cmake if it does not already # exist. You can configure additional options there. # # Make sure the user doesn't play dirty with symlinks get_filename_component (srcdir "${CMAKE_SOURCE_DIR}" REALPATH) get_filename_component (bindir "${CMAKE_BINARY_DIR}" REALPATH) # Disallow in-source builds if (${srcdir} STREQUAL ${bindir}) message(FATAL_ERROR "In-source builds are not allowed. " "Please create a directory and run cmake from there, passing the path " "to this source directory as the last argument. This process created " "the file `CMakeCache.txt' and the directory `CMakeFiles' in ${srcdir}. " "Please remove them.") endif (${srcdir} STREQUAL ${bindir}) # Define minimum CMake version required cmake_minimum_required (VERSION 2.8.5) # Define project name project (GMT) # Where to find our CMake modules (this variable is visible in subdirectories). set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules/" CACHE INTERNAL "Location of our custom CMake modules." FORCE) # Include configuration options (default options and options overridden by user). include (ConfigCMake) # Find UNIX commands include (FindUnixCommands) find_program (SVN svn) # Global test target add_custom_target (check COMMAND ${CMAKE_CTEST_COMMAND} --force-new-ctest-process -j${N_TEST_JOBS}) # Find test dependencies find_program (GRAPHICSMAGICK gm) if (DO_EXAMPLES OR DO_TESTS AND NOT GRAPHICSMAGICK) message (FATAL_ERROR "Cannot proceed without GraphicsMagick. " "Need to either install GraphicsMagick or disable tests.") endif (DO_EXAMPLES OR DO_TESTS AND NOT GRAPHICSMAGICK) # Add subdirectories #set(_manfiles_ps "" CACHE INTERNAL "Global list of PS manpages") add_subdirectory (src) add_subdirectory (share) # share must be processed *after* src (GSHHG_PATH) add_subdirectory (doc) # share must be processed *after* src (PDF manpages) add_subdirectory (test) add_subdirectory (cmake/dist) # make distribution bundles (always last) # Source release target if (SVN AND HAVE_SVN_VERSION) # Export svn working tree add_custom_target (svn_export_release COMMAND ${SVN} --force export ${GMT_SOURCE_DIR} ${GMT_RELEASE_PREFIX}) add_depend_to_target (gmt_release svn_export_release) find_program (GNUTAR NAMES gnutar gtar tar) if (GNUTAR) # Targets for creating tarballs string (REGEX REPLACE ".*/" "" _release_dirname "${GMT_RELEASE_PREFIX}") add_custom_command (OUTPUT ${_release_dirname}-src.tar.gz COMMAND ${GNUTAR} -cz --owner 0 --group 0 --mode a=rX,u=rwX -f ${GMT_BINARY_DIR}/${_release_dirname}-src.tar.gz ${_release_dirname} DEPENDS ${GMT_RELEASE_PREFIX} WORKING_DIRECTORY ${GMT_RELEASE_PREFIX}/.. VERBATIM) add_custom_command (OUTPUT ${_release_dirname}-src.tar.bz2 COMMAND ${GNUTAR} -cj --owner 0 --group 0 --mode a=rX,u=rwX -f ${GMT_BINARY_DIR}/${_release_dirname}-src.tar.bz2 ${_release_dirname} DEPENDS ${GMT_RELEASE_PREFIX} WORKING_DIRECTORY ${GMT_RELEASE_PREFIX}/.. VERBATIM) add_custom_target (gmt_release_tar DEPENDS ${GMT_RELEASE_PREFIX} ${_release_dirname}-src.tar.gz ${_release_dirname}-src.tar.bz2) endif (GNUTAR) endif (SVN AND HAVE_SVN_VERSION) get_target_property (_location gmtlib LOCATION) get_filename_component (GMT_CORE_LIB_NAME ${_location} NAME) get_target_property (_location pslib LOCATION) get_filename_component (PSL_LIB_NAME ${_location} NAME) if (BUILD_SUPPLEMENTS) # Get name of shared supplemental library get_target_property (_location supplib LOCATION) get_filename_component (GMT_SUPPL_LIB_NAME ${_location} NAME) set (SUPPL "yes [${GMT_SUPPL_LIB_NAME}]") else (BUILD_SUPPLEMENTS) set (SUPPL "no") endif (BUILD_SUPPLEMENTS) if (BUILD_SHARED_LIBS) set (BUILD_MODE "shared") else (BUILD_SHARED_LIBS) set (BUILD_MODE "static") endif (BUILD_SHARED_LIBS) if (EXTRA_BUILD_DIRS) set (PROTO ${EXTRA_BUILD_DIRS}) else (EXTRA_BUILD_DIRS) set (PROTO "none") endif (EXTRA_BUILD_DIRS) # Configure a header file to pass some of the CMake settings to the source code configure_file ( "${PROJECT_SOURCE_DIR}/config.h.in" "${PROJECT_BINARY_DIR}/config.h") # Configuration done message( "* Options:\n" "* Found GSHHG database : ${GSHHG_PATH} (${GSHHG_VERSION})\n" "* Found DCW-GMT database : ${DCW_PATH}\n" "* NetCDF library : ${NETCDF_LIBRARY}\n" "* NetCDF include dir : ${NETCDF_INCLUDE_DIR}\n" "* GDAL library : ${GDAL_LIBRARY}\n" "* GDAL include dir : ${GDAL_INCLUDE_DIR}\n" "* FFTW library : ${FFTW3F_LIBRARY}\n" "* FFTW include dir : ${FFTW3_INCLUDE_DIR}\n" "* Accelerate Framework : ${ACCELERATE_FRAMEWORK}\n" "* Regex support : ${GMT_CONFIG_REGEX_MESSAGE}\n" "* ZLIB library : ${ZLIB_LIBRARY}\n" "* ZLIB include dir : ${ZLIB_INCLUDE_DIR}\n" "* License restriction : ${LICENSE_RESTRICTED}\n" "* Triangulation method : ${GMT_TRIANGULATE}\n" "* Build mode : ${BUILD_MODE}\n" "* Build GMT core : always [${GMT_CORE_LIB_NAME}]\n" "* Build PSL library : always [${PSL_LIB_NAME}]\n" "* Build GMT supplements : ${SUPPL}\n" "* Build proto supplements : ${PROTO}\n" "*\n" "* Locations:\n" "* Installing GMT in : ${CMAKE_INSTALL_PREFIX}\n" "* GMT_DATADIR : ${CMAKE_INSTALL_PREFIX}/${GMT_DATADIR}\n" "* GMT_DOCDIR : ${CMAKE_INSTALL_PREFIX}/${GMT_DOCDIR}\n" "* GMT_MANDIR : ${CMAKE_INSTALL_PREFIX}/${GMT_MANDIR}") # For debugging: print all set variables #get_cmake_property(_variableNames VARIABLES) #foreach (_variableName ${_variableNames}) # message(STATUS "${_variableName}=${${_variableName}}") #endforeach() # vim: textwidth=78 noexpandtab tabstop=2 softtabstop=2 shiftwidth=2 --------------010700020204020103010009--