I'm trying to get codequery working on a server at work that I do not have root privileges to. I've installed a number of tools/libraries to my user directory, which when using pkg-config is really easy (./configure --prefix=whatever). However in Cmake it doesn't appear to be straight forward at all.
Here is where I'm at right now:
I've installed all the codequery prerequisites (new gcc, sqlite3, etc) to my home drive.
I found this wiki page about env variables:
http://www.cmake.org/Wiki/CMake_Useful_Variables
I have to set the following env variables to get the prefix stuff correct:
DESTDIR
CMAKE_INCLUDE_PATH
CMAKE_LIBRARY_PATH
But cmake doesn't use PATH so you have to set the compilers manually:
CMAKE_C_COMPILER
CMAKE_CXX_COMPILER
And then it seems that my custom include directory/library path isn't been passed to g++ when compiling, so I have to add this as well:
CMAKE_CXX_FLAGS
CMAKE_C_FLAGS
Here is the full configure cmd line from a fresh build directory:
$ DESTDIR="/home/dlinnington/tools/" CMAKE_INCLUDE_PATH="/home/dlinnington/tools/include" CMAKE_LIBRARY_PATH="/home/dlinnington/tools/lib:/home/dlinnington/tools/lib64" cmake -DCMAKE_CXX_FLAGS="-B/home/dlinnington/tools/lib/gcc/ -isystem=/home/dlinnington/tools/include -L/home/dlinnington/tools/lib" -DCMAKE_C_FLAGS="-B/home/dlinnington/tools/lib/gcc/ -isystem=/home/dlinnington/tools/include -L/home/dlinnington/tools/lib" -DCMAKE_C_COMPILER=/home/dlinnington/tools/bin/gcc -DCMAKE_CXX_COMPILER=/home/dlinnington/tools/bin/g++ -G "Unix Makefiles" ..
-- The C compiler identification is GNU 4.8.0
-- The CXX compiler identification is GNU 4.8.0
-- Check for working C compiler: /home/dlinnington/tools/bin/gcc
-- Check for working C compiler: /home/dlinnington/tools/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /home/dlinnington/tools/bin/g++
-- Check for working CXX compiler: /home/dlinnington/tools/bin/g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found Sqlite3 header file in /home/dlinnington/tools/include
-- Found Sqlite3 libraries: /home/dlinnington/tools/lib/libsqlite3.so
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found
-- Found Qt4: /home/dlinnington/tools/bin/qmake (found version "4.8.4")
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dlinnington/tools/install/codequery/codequery/build
And I actually got the build working correctly and (what appears) to be linking correctly. However after all that when I run make install:
-- Installing: /usr/local/bin/cqmakedb
CMake Error at makedb/cmake_install.cmake:42 (FILE):
file INSTALL cannot copy file
"/home/dlinnington/tools/install/codequery/codequery/build/cqmakedb" to
"/usr/local/bin/cqmakedb".
Call Stack (most recent call first):
cmake_install.cmake:38 (INCLUDE)
Do I need to set CMAKE_INSTALL_PREFIX, even though the cmake wiki says not to?