I have just downloaded the OpenSceneGraph source, unzip it into
"~/OpenSceneGraph-3.0.1" directory and use CMake to create an out-of-source
eclipse make project in "~/OpenSceneGraph-3.0.1-build-eclipse-cdt"
directory. When I execute "make" in
"~/OpenSceneGraph-3.0.1-build-eclipse-cdt" directory, OpenSceneGraph builds
successfully. I have not run "sudo make install" as I do not want to
install OpenSceneGraph tightly into my Ubuntu system.
Now I want to use CMake to create a project using the compiled
OpenSceneGraph libraries. I use the following codes in CMakeLists.txt :
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT( test_proj )
FIND_PACKAGE(OpenSceneGraph)
ADD_EXECUTABLE(test test.cpp )
INCLUDE_DIRECTORIES(${OPENSCENEGRAPH_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(test ${OPENSCENEGRAPH_LIBRARIES} )
But it seems that OpenSceneGraph could not be found by CMake.
Does anyone know how CMake could find the compiled OpenSceneGraph
libraries in the "~/OpenSceneGraph-3.0.1-build-eclipse-cdt" directory and
use it to create projects as if I have tightly installed OpenSceneGraph
using "sudo make install". Thanks for any suggestion.
Best Answer
You don't need to install OpenSceneGraph system-wide. Just choose a CMAKE_INSTALL_PREFIX that suits you (eg. ~/osg).
Using the install command makes sure that everything is correctly in place (i.e. in the correct directory structure) for
FindOpenSceneGraph.cmake
(the script CMake invokes when you callFIND_PACKAGE( OpenSceneGraph )
) to find it.Then, you should point any of
OSG_DIR
,OSGDIR
, orOSG_ROOT
as environment variable and point it to your install location, so CMake knows where to look for it.Edit: @Hugues: I'll try to make it a bit clearer:
Setup up OpenSceneGraph:
CMAKE_INSTALL_PREFIX
that suits you, eg.~/osg
if you don't want a system-wide installation in (default)/usr/local
. Do it either by stating-DCMAKE_INSTALL_PREFIX=/home/hugues/osg
on the command-line or by setting it using a gui tool likeccmake
orcmake-gui
.make install
to build and install OSG.OSG_DIR
to whatever you pointedCMAKE_INSTALL_PREFIX
. (export OSG_DIR=<whereever_you_installed_osg>
)Setup your project:
CMakeLists.txt
, useFIND_PACKAGE( OpenSceneGraph )
(add desired optional arguments as desired).${OpenSceneGraph_LIBRARIES}
in the appropriate places in your cmake file.