Portál AbcLinuxu, 4. května 2025 07:41

Dotaz: cmake - vadný seznam souborů k instalaci

Jardík avatar 24.8.2006 01:06 Jardík | skóre: 40 | blog: jarda_bloguje
cmake - vadný seznam souborů k instalaci
Přečteno: 305×
Odpovědět | Admin

Já se s tím psaním CMakeLists.txt tak se*u, abych pak zjistil, že mám nějaký bugový cmake.

CMakeLists.txt:

PROJECT(TOOLKIT C CXX)
SET(TOOLKIT_VERSION "0.1")

SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")

MESSAGE("Looking for Gtk2 ...")
SET(GTK2_DIR "${CMAKE_MODULE_PATH}")
FIND_PACKAGE(GTK2 REQUIRED)
IF(GTK2_FOUND)
	MESSAGE("Gtk+-2.0 found.")
ELSE(GTK2_FOUND)
	MESSAGE(FATAL_ERROR "No Gtk+-2.0 found.")
ENDIF(GTK2_FOUND)

ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE ${GTK2_DEFINITIONS})

INCLUDE_DIRECTORIES(
	${CMAKE_CURRENT_SOURCE_DIR}
)

SET(TOOLKIT_SOURCE_FILES
	"Toolkit/Alignment.cpp"
	"Toolkit/Application.cpp"
	"Toolkit/Archiver.cpp"
	"Toolkit/Box.cpp"
	"Toolkit/Button.cpp"
	"Toolkit/ButtonBox.cpp"
	"Toolkit/Container.cpp"
	"Toolkit/Dialog.cpp"
	"Toolkit/Entry.cpp"
	"Toolkit/EventBox.cpp"
	"Toolkit/File.cpp"
	"Toolkit/FileUtils.cpp"
	"Toolkit/Frame.cpp"
	"Toolkit/HBox.cpp"
	"Toolkit/HPaned.cpp"
	"Toolkit/Image.cpp"
	"Toolkit/IniFile.cpp"
	"Toolkit/InputBox.cpp"
	"Toolkit/Label.cpp"
	"Toolkit/ListView.cpp"
	"Toolkit/Menu.cpp"
	"Toolkit/Notebook.cpp"
	"Toolkit/Paned.cpp"
	"Toolkit/ProgressBar.cpp"
	"Toolkit/ScrolledWindow.cpp"
	"Toolkit/Separator.cpp"
	"Toolkit/String.cpp"
	"Toolkit/Table.cpp"
	"Toolkit/Timer.cpp"
	"Toolkit/VBox.cpp"
	"Toolkit/Viewport.cpp"
	"Toolkit/VPaned.cpp"
	"Toolkit/Widget.cpp"
	"Toolkit/Window.cpp"
)

SET(TOOLKIT_INSTALL_HEADER_FILES
	"Toolkit/Alignment.h"
	"Toolkit/Application.h"
	"Toolkit/Archiver.h"
	"Toolkit/Array.h"
	"Toolkit/Bool.h"
	"Toolkit/Box.h"
	"Toolkit/Button.h"
	"Toolkit/ButtonBox.h"
	"Toolkit/Callback.h"
	"Toolkit/Config.h"
	"Toolkit/Container.h"
	"Toolkit/Dialog.h"
	"Toolkit/Entry.h"
	"Toolkit/Enums.h"
	"Toolkit/EventBox.h"
	"Toolkit/File.h"
	"Toolkit/FileUtils.h"
	"Toolkit/Frame.h"
	"Toolkit/HBox.h"
	"Toolkit/HPaned.h"
	"Toolkit/Image.h"
	"Toolkit/IniFile.h"
	"Toolkit/InputBox.h"
	"Toolkit/Label.h"
	"Toolkit/ListView.h"
	"Toolkit/Menu.h"
	"Toolkit/Notebook.h"
	"Toolkit/Paned.h"
	"Toolkit/ProgressBar.h"
	"Toolkit/ScrolledWindow.h"
	"Toolkit/Separator.h"
	"Toolkit/String.h"
	"Toolkit/StringArray.h"
	"Toolkit/Table.h"
	"Toolkit/Timer.h"
	"Toolkit/Toolkit.h"
	"Toolkit/VBox.h"
	"Toolkit/Viewport.h"
	"Toolkit/VPaned.h"
	"Toolkit/Widget.h"
	"Toolkit/Window.h"
)

CONFIGURE_FILE(
	"Toolkit/Config.h.cmake"
	"Toolkit/Config.h"
)

CONFIGURE_FILE(
	"${CMAKE_CURRENT_SOURCE_DIR}/bin/toolkit-config.cmake"
	"${CMAKE_CURRENT_SOURCE_DIR}/bin/toolkit-config"
)

EXEC_PROGRAM("chmod" ARGS "+x bin/toolkit-config")

ADD_LIBRARY(toolkit SHARED ${TOOLKIT_SOURCE_FILES})
TARGET_LINK_LIBRARIES(toolkit ${GTK2_LIBRARIES})

INSTALL_TARGETS("/lib" toolkit)
INSTALL_FILES("/include/Toolkit" ${TOOLKIT_INSTALL_HEADER_FILES})
INSTALL_PROGRAMS("/bin" FILES "bin/toolkit-config")

GTK2Config.cmake:

#
# try to find GTK2 (and glib2)
#
# GTK2_LIBRARIES     - Files to link against to use GTK2
# GTK2_DEFINITIONS   - Compiler flags to compile against GTK2
# GTK2_FOUND         - If false, don't try to use GTK2

SET( GTK2_FOUND FALSE )

FIND_PROGRAM( PKG_CONFIG pkg-config
  /usr/bin
  /usr/local/bin
  ${HOME}/bin
)

IF( PKG_CONFIG )
  EXEC_PROGRAM( ${PKG_CONFIG} ARGS "--exists gtk+-2.0" RETURN_VALUE GTK2_PKG_RET_VAL )

  IF( ${GTK2_PKG_RET_VAL} MATCHES "0" ) 

    EXEC_PROGRAM( ${PKG_CONFIG} ARGS "--cflags gtk+-2.0" OUTPUT_VARIABLE GTK2_gtk2_DEFINITIONS )
    EXEC_PROGRAM( ${PKG_CONFIG} ARGS "--libs gtk+-2.0" OUTPUT_VARIABLE GTK2_gtk2_LIBRARIES )

    SET( GTK2_FOUND TRUE )
    SET( GTK2_DEFINITIONS "${GTK2_gtk2_DEFINITIONS}" )
    SET( GTK2_LIBRARIES   "${GTK2_gtk2_LIBRARIES}" )

  ENDIF( ${GTK2_PKG_RET_VAL} MATCHES "0" )

ENDIF( PKG_CONFIG )

Kompilace proběhne vpořádku, výsledkem je knihovna libtoolkit.so. Problém je ale v "make install". CMake si prostě vytvoří vadný cmake_install.cmake. Teda spíš vadný seznam souborů ke zkopírování, který obsahuje právě tento soubor:

# Install script for directory: /home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit

# Set the install prefix
IF(NOT DEFINED CMAKE_INSTALL_PREFIX)
  SET(CMAKE_INSTALL_PREFIX "/usr/local")
ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX)
STRING(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")

# Set the install configuration name.
IF(NOT CMAKE_INSTALL_CONFIG_NAME)
  IF(BUILD_TYPE)
    STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
  ELSE(BUILD_TYPE)
    SET(CMAKE_INSTALL_CONFIG_NAME "")
  ENDIF(BUILD_TYPE)
  MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
ENDIF(NOT CMAKE_INSTALL_CONFIG_NAME)

# Set the component getting installed.
IF(NOT CMAKE_INSTALL_COMPONENT)
  IF(COMPONENT)
    MESSAGE(STATUS "Install component: \"${COMPONENT}\"")
    SET(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
  ELSE(COMPONENT)
    SET(CMAKE_INSTALL_COMPONENT)
  ENDIF(COMPONENT)
ENDIF(NOT CMAKE_INSTALL_COMPONENT)

FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/ApplicationToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/ArchiverToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/ArrayToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/BoolToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/BoxToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/ButtonToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/ButtonBoxToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/CallbackToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/ConfigToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/ContainerToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/DialogToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/EntryToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/EnumsToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/EventBoxToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/FileToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/FileUtilsToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/FrameToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/HBoxToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/HPanedToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/ImageToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/IniFileToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/InputBoxToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/LabelToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/ListViewToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/MenuToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/NotebookToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/PanedToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/ProgressBarToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/ScrolledWindowToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/SeparatorToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/StringToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/StringArrayToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/TableToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/TimerToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/ToolkitToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/VBoxToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/ViewportToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/VPanedToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/WidgetToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/Toolkit" TYPE FILE FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/Toolkit/WindowToolkit/Alignment.h")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE PROGRAM FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/bin/toolkit-config")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE SHARED_LIBRARY FILES "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/CMakeFiles/CMakeRelink.dir/libtoolkit.so")
IF(CMAKE_INSTALL_COMPONENT)
  SET(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
ELSE(CMAKE_INSTALL_COMPONENT)
  SET(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
ENDIF(CMAKE_INSTALL_COMPONENT)
FILE(WRITE "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/${CMAKE_INSTALL_MANIFEST}" "")
FOREACH(file ${CMAKE_INSTALL_MANIFEST_FILES})
  FILE(APPEND "/home/jardasmid/Dokumenty/Projekty/JXP Commander/Toolkit/${CMAKE_INSTALL_MANIFEST}" "${file}\n")
ENDFOREACH(file)

Z každého souboru *.h si odsekne příponu a přidá za to Toolkit/Alignment.h a já nevím proč.

Věřím v jednoho Boha.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Na otázku zatím nikdo bohužel neodpověděl.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.