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.
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 call FIND_PACKAGE( OpenSceneGraph )
) to find it.
Then, you should point any of OSG_DIR
, OSGDIR
, or OSG_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 like ccmake
or cmake-gui
.make install
to build and install OSG. OSG_DIR
to whatever you pointed CMAKE_INSTALL_PREFIX
. (export OSG_DIR=<whereever_you_installed_osg>
)Setup your project:
CMakeLists.txt
, use FIND_PACKAGE( OpenSceneGraph )
(add desired optional arguments as desired).${OpenSceneGraph_LIBRARIES}
in the appropriate places in your cmake file.