cmake повторяет CMAKE_INSTALL_PREFIX до появления ошибки - PullRequest
0 голосов
/ 21 марта 2019
cmake -DCMAKE_INSTALL_PREFIX="/home/usr/bin" ..
make install 

дать

-- Installing: /home/wsmith/bin/include/cms_xl/include/cms_xl/build/bin/include/cms_xl/build/bin.. 

повторяется до ...

ld/bin/include/cms_xl/build/bin/include/cms_xl/build/bin/include/cms_xl/build/bin/include/cms_xl/build/bin/include/cms_xl/build/bin/include/cms_xl/build/bin/include/cms_xl":
  File name too long
Call Stack (most recent call first):
  cmake_install.cmake:58 (include)

base- -swig -src

Содержимое файлаCMakeLists.txt на базе:

cmake_minimum_required(VERSION 2.8)

add_subdirectory(/home/wsmith/cmake/src/cms_xl/src)
add_subdirectory(/home/wsmith/cmake/src/cms_xl//swig)

install (TARGETS zoo  RUNTIME DESTINATION bin LIBRARY DESTINATION lib)

swig dir CMakeLists.txt выглядит как

project(zoo)

include(log4cpp)
include(mysql)
include(boost)
include(perl)
include(swig)
include(setup)

set(PATH_TO_CMS_SOURCE /home/wsmith/cmake/src/cms_xl/src/)
if (NOT DEFINED CMAKE_INSTALL_PREFIX)
  set(install_override ON)
else (NOT DEFINED CMAKE_INSTALL_PREFIX)
  set(install_override OFF)
endif (NOT DEFINED CMAKE_INSTALL_PREFIX)

include_directories(${PATH_TO_PERL} ${PATH_TO_CMS} ${PATH_TO_CMS_SOURCE})

swig_create(zoo)

set_target_properties( zoo  PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
install (TARGETS zoo  RUNTIME DESTINATION bin LIBRARY DESTINATION lib)

swig.cmake (include):

function(swig_create arg)
        FIND_PACKAGE(SWIG REQUIRED)
        INCLUDE(${SWIG_USE_FILE})
        #swig_link_libraries(${PERL_LIBRARIES})

        SET(CMAKE_SWIG_FLAGS "-Wall" "-c++")
        set_source_files_properties(${arg}.i PROPERTIES CPLUSPLUS ON)
        set_source_files_properties(${arg}.i PROPERTIES SWIG_FLAGS "-c++;-shadow")
        set_property(SOURCE ../swig/${arg}.i PROPERTY CPLUSPLUS ON)
        swig_add_library( ${arg} LANGUAGE perl SOURCES ../swig/${arg}.i )
        target_include_directories(${arg} PRIVATE ${PATH_TO_CMS_SOUCE})
endfunction()

Работает, еслиЯ иду в глоток и делаю удар., сделайте установку, но если я пытаюсь из базы или из сборки, он повторяет

...