DOOMer / screengrab

Crossplatform tool for fast making screenshots.
http://screengrab.doomer.org/
GNU General Public License v2.0
23 stars 8 forks source link

does not respect DCMAKE_INSTALL_PREFIX #56

Open aoloe opened 10 years ago

aoloe commented 10 years ago
$ cmake -DCMAKE_INSTALL_PREFIX:PATH=/home/ale/docs/bin/screengrab ../
[...]
$ make
[...]
$ make install
[  8%] Built target qkeysequencewidget
[ 12%] Built target singleapp
[ 57%] Built target uploader
[ 62%] Built target extedit
[ 68%] Built target qxt
[100%] Built target screengrab
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/bin/screengrab
CMake Error at cmake_install.cmake:42 (FILE):
  file INSTALL cannot copy file
  "/home/ale/docs/src/screengrab/build/screengrab" to "/usr/bin/screengrab".

Makefile:62: recipe for target 'install' failed
make: *** [install] Error 1

tried with both this repository and the one at qtdesktop...

aoloe commented 10 years ago

by defining

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e1db580..b790539 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -62,7 +62,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Woverloaded-virtual

 # ------ install prefix --------------------------

-set(CMAKE_INSTALL_PREFIX "/usr")
+set(CMAKE_INSTALL_PREFIX "/home/ale/docs/bin/screengrab")

 add_definitions( -DPREFIX="${CMAKE_INSTALL_PREFIX}")

@@ -369,4 +369,4 @@ if(WIN32)
     install(FILES ${DOCS} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/distro/docs)
     install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/docs/html/" DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/distro/docs/html

-endif(WIN32)
\ No newline at end of file
+endif(WIN32)

i can install it... so it really seems to ignore it...

aoloe commented 10 years ago

but then segfaults on start :-(

aoloe commented 10 years ago
$ gdb ./screengrab/bin/screengrab 
GNU gdb (GDB) 7.6.2 (Debian 7.6.2-1.1+b1)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/ale/docs/bin/screengrab/bin/screengrab...done.
(gdb) run
Starting program: /home/ale/docs/bin/./screengrab/bin/screengrab 
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffa000
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff6bc2a81 in QWidget::insertAction(QAction*, QAction*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
(gdb) bt
#0  0x00007ffff6bc2a81 in QWidget::insertAction(QAction*, QAction*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#1  0x0000000000441989 in MainWindow::MainWindow (this=0x7fffffffe1b0, parent=0x0)
    at /home/ale/docs/src/screengrab/src/ui/mainwindow.cpp:127
#2  0x0000000000420f90 in main (argc=1, argv=0x7fffffffe488) at /home/ale/docs/src/screengrab/src/main.cpp:60
JHooverman commented 10 years ago

I was trying to reproduce your issue and can confirm, that screengrab does not respect the DCMAKE_INSTALL_PREFIX. Your patch will probably set the correct path for the screengrab binary but not for the libraries, which are installed to /usr/lib/screengrab. This is why screengrab segfaults on start.

pc@linux-3l36:/testbed/share/development/screengrab/FORK/screengrab-test-cmake> cmake ./ -DCMAKE_INSTALL_PREFIX=/home/ale/docs/bin/screengrab -- System: Linux 3.14.4-30.gbebeb6f-default -- Processor: i686 -- Version : 1.0.83 (1.1-dev) -- Architecture : -- Use qmake: /usr/bin/qmake -- Build type: RelWithDebInfo -- Install prefix: /usr -- Library path: /usr/lib/screengrab -- Global shortcuts support: ON -- XDG_CONFIG_HOME support: ON -- Upload to image hosings support: ON -- Editing shots in external editor support: ON -- Use system Qxt Library: OFF -- Documentation directory: /usr/share/doc/screengrab -- SG_INCLUDE: /testbed/share/development/screengrab/FORK/screengrab-test-cmake/src/ -- SG_CORE_INCLUDE-2: /testbed/share/development/screengrab/FORK/screengrab-test-cmake/src/ -- MKSPECS dir : /usr/share/qt4/mkspecs -- Found lrelease executable: /usr/bin/lrelease -- Generating localize ... -- Configuring done -- Generating done -- Build files have been written to: /testbed/share/development/screengrab/FORK/screengrab-test-cmake