Skip to content

Commit

Permalink
Creating Cmake-config files
Browse files Browse the repository at this point in the history
  • Loading branch information
kjetilly committed Sep 25, 2013
1 parent c023b78 commit 61e1b83
Show file tree
Hide file tree
Showing 45 changed files with 126 additions and 2,227 deletions.
55 changes: 52 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@ IF(NOT WIN32)
ENDIF()
ENDIF()

if(WIN32 AND NOT CYGWIN)
set(DEF_INSTALL_CMAKE_DIR cmake)
else()
set(DEF_INSTALL_CMAKE_DIR lib/cmake/Tinia)
endif()
set(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH
"Installation directory for CMake files")

IF(NOT WIN32)
OPTION( Tinia_SERVER "Build mod_trell and related components?" ON)
ELSE()
Expand Down Expand Up @@ -61,7 +69,7 @@ ELSE()
ENDIF()

IF(LIBXML2_FOUND)

SET(TINIA_LIBRARIES_FOR_CONFIG ${TINIA_LIBRARIES_FOR_CONFIG} ${LIBXML2_LIBRARIES})
ADD_DEFINITIONS(-DTINIA_HAVE_LIBXML)
ELSE()
SET(LIBXML2_INCLUDE_DIRS "")
Expand All @@ -75,6 +83,7 @@ set(BOOST_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
FIND_PACKAGE( Boost REQUIRED COMPONENTS unit_test_framework prg_exec_monitor thread date_time system )
SET(TINIA_LIBRARIES_FOR_CONFIG ${TINIA_LIBRARIES_FOR_CONFIG} ${BOOST_LIBRARIES})

##### QT #####
IF(Tinia_DESKTOP)
Expand All @@ -88,6 +97,7 @@ IF(Tinia_DESKTOP)
QT4_WRAP_UI(qtcontroller_FORMS_HEADERS ${qtcontroller_FORMS})
ADD_DEFINITIONS(${QT_DEFINITIONS})
ADD_DEFINITIONS(-DQT_SHARED)
SET(TINIA_LIBRARIES_FOR_CONFIG ${TINIA_LIBRARIES_FOR_CONFIG} ${LIBXML2_LIBRARIES} ${QT_LIBRARIES})
ENDIF()


Expand All @@ -96,6 +106,7 @@ FIND_PACKAGE( OpenGL REQUIRED )
FIND_PACKAGE( GLEW REQUIRED )
FIND_PACKAGE( GLM REQUIRED )

SET(TINIA_LIBRARIES_FOR_CONFIG ${TINIA_LIBRARIES_FOR_CONFIG} ${OPENGL_LIBRARIES} ${GLEW_LIBRARIES})
IF(Tinia_SERVER)

FIND_PATH( APACHE_INCLUDE_DIR httpd.h
Expand All @@ -117,37 +128,48 @@ HINTS "/usr/include/apr-1.0"
"/usr/include/apr-1"
"apr-1/"
"apr-1.0")
SET(TINIA_LIBRARIES_FOR_CONFIG ${TINIA_LIBRARIES_FOR_CONFIG} ${RT} ${LIB_APR})
ENDIF()

include_directories( "./include"
SET(TINIA_EXTERNAL_INCLUDE_DIRS
${LIBXML2_INCLUDE_DIR}
${GLEW_INCLUDE_DIR}
${GLM_INCLUDE_DIR}
${APACHE_INCLUDE_DIR}
${APR_INCLUDE_DIR}
${QT_INCLUDE_DIR}
${QT_QTOPENGL_INCLUDE_DIR}
${Boost_INCLUDE_DIRS}
${Boost_INCLUDE_DIRS})

include_directories( "./include"
${TINIA_EXTERNAL_INCLUDE_DIRS}
)

link_directories(
${Boost_LIBRARY_DIRS}
)

ADD_SUBDIRECTORY( "src/model" )
SET(TINIA_LIBRARIES_FOR_CONFIG ${TINIA_LIBRARIES_FOR_CONFIG} model)
IF(LIBXML2_FOUND)
ADD_SUBDIRECTORY( "src/modelxml" )
SET(TINIA_LIBRARIES_FOR_CONFIG ${TINIA_LIBRARIES_FOR_CONFIG} modelxml)
ENDIF()
ADD_SUBDIRECTORY( "src/renderlist" )
SET(TINIA_LIBRARIES_FOR_CONFIG ${TINIA_LIBRARIES_FOR_CONFIG} renderlist)
ADD_SUBDIRECTORY( "src/renderlistgl" )
SET(TINIA_LIBRARIES_FOR_CONFIG ${TINIA_LIBRARIES_FOR_CONFIG} renderlistgl)
ADD_SUBDIRECTORY( "src/jobcontroller" )
SET(TINIA_LIBRARIES_FOR_CONFIG ${TINIA_LIBRARIES_FOR_CONFIG} jobcontroller)
IF(Tinia_DESKTOP)
ADD_SUBDIRECTORY( "js")
SET(TINIA_LIBRARIES_FOR_CONFIG ${TINIA_LIBRARIES_FOR_CONFIG} tinia_javascript)
ADD_SUBDIRECTORY( "src/qtcontroller" )

ENDIF()
IF(Tinia_SERVER)
ADD_SUBDIRECTORY( "src/trell" )
SET(TINIA_LIBRARIES_FOR_CONFIG ${TINIA_LIBRARIES_FOR_CONFIG} trell)
ADD_SUBDIRECTORY( "src/mod_trell" )
ADD_SUBDIRECTORY( "src/trell_master" )
ENDIF()
Expand Down Expand Up @@ -203,6 +225,33 @@ SET(CPACK_PACKAGE_VENDOR "SINTEF ICT")

SET(CPACK_PACKAGE_VERSION ${version_number} )

# This is for local build directory:
set(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/include" ${TINIA_EXTERNAL_INCLUDE_DIRS})
configure_file(TiniaConfig.cmake.in
"${PROJECT_BINARY_DIR}/TiniaConfig.cmake" @ONLY)

# This is for the installed file
# First we need relative path for include
file(RELATIVE_PATH REL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_CMAKE_DIR}"
"${CMAKE_INSTALL_PREFIX}/include")

set(CONF_INCLUDE_DIRS "\${TINIA_CMAKE_DIR}/${REL_INCLUDE_DIR}" ${TINIA_EXTERNAL_INCLUDE_DIRS})
configure_file(TiniaConfig.cmake.in
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/TiniaConfig.cmake" @ONLY)

configure_file(TiniaConfigVersion.cmake.in
"${PROJECT_BINARY_DIR}/TiniaConfigVersion.cmake" @ONLY)

# We need to install the config files
install(FILES
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/TiniaConfig.cmake"
"${PROJECT_BINARY_DIR}/TiniaConfigVersion.cmake"
DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT tinia_dev)

# Install the export set for use with the install-tree
install(EXPORT TiniaTargets DESTINATION
"${INSTALL_CMAKE_DIR}" COMPONENT tinia_dev)

IF(WIN32)
SET( CPACK_GENERATOR "NSIS" )
SET( CPACK_NSIS_CONTACT "[email protected]" )
Expand Down
17 changes: 17 additions & 0 deletions TiniaConfig.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# - Config file for the Tinia package
# It defines the following variables
# TINIA_INCLUDE_DIRS - include directories for Tinia
# TINIA_LIBRARIES - libraries to link against

# Compute paths
get_filename_component(TINIA_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
set(TINIA_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@")

# Our library dependencies (contains definitions for IMPORTED targets)
#if(NOT TARGET AND NOT FooBar_BINARY_DIR)
include("${TINIA_CMAKE_DIR}/TiniaTargets.cmake")
#endif()


set(TINIA_LIBRARIES @TINIA_LIBRARIES_FOR_CONFIG@)

11 changes: 11 additions & 0 deletions TiniaConfigVersion.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
set(PACKAGE_VERSION "@TINIA_VERSION@")

# Check whether the requested PACKAGE_FIND_VERSION is compatible
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
set(PACKAGE_VERSION_COMPATIBLE TRUE)
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()
5 changes: 4 additions & 1 deletion examples/changerestrictions/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ IF(Tinia_DESKTOP)
)

INSTALL( TARGETS restrictions_qt_job
EXPORT TiniaTargets
RUNTIME DESTINATION bin
COMPONENT restrictions_qt_job
)
Expand Down Expand Up @@ -54,7 +55,9 @@ IF(Tinia_SERVER)


INSTALL(TARGETS
restrictions_cloud_job RUNTIME
restrictions_cloud_job
EXPORT TiniaTargets
RUNTIME
DESTINATION var/trell/apps/
COMPONENT mod_trell
)
Expand Down
7 changes: 5 additions & 2 deletions examples/clock_example/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ IF(Tinia_DESKTOP)
)

INSTALL( TARGETS clock_qt_job
RUNTIME DESTINATION bin
EXPORT TiniaTargets
RUNTIME DESTINATION bin
COMPONENT clock_qt_job
)

Expand Down Expand Up @@ -54,7 +55,9 @@ IF(Tinia_SERVER)


INSTALL(TARGETS
clock_cloud_job RUNTIME
clock_cloud_job
EXPORT TiniaTargets
RUNTIME
DESTINATION var/trell/apps/
COMPONENT mod_trell
)
Expand Down
5 changes: 4 additions & 1 deletion examples/cuberenderer/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ IF(Tinia_DESKTOP)
)

INSTALL( TARGETS cube_qt_job
EXPORT TiniaTargets
RUNTIME DESTINATION bin
COMPONENT cube_qt_job
)
Expand Down Expand Up @@ -54,7 +55,9 @@ IF(Tinia_SERVER)


INSTALL(TARGETS
cube_cloud_job RUNTIME
cube_cloud_job
EXPORT TiniaTargets
RUNTIME
DESTINATION var/trell/apps/
COMPONENT mod_trell
)
Expand Down
4 changes: 3 additions & 1 deletion examples/fpsviewer/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,9 @@ IF(Tinia_SERVER)


INSTALL(TARGETS
fpsviewer_web RUNTIME
fpsviewer_web
EXPORT TiniaTargets
RUNTIME
DESTINATION var/trell/apps/
COMPONENT mod_trell
)
Expand Down
5 changes: 4 additions & 1 deletion examples/simplejob/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ IF(Tinia_DESKTOP)
)

INSTALL( TARGETS simple_qt_job
EXPORT TiniaTargets
RUNTIME DESTINATION bin
COMPONENT simple_qt_job
)
Expand Down Expand Up @@ -54,7 +55,9 @@ IF(Tinia_SERVER)


INSTALL(TARGETS
test_job RUNTIME
test_job
EXPORT TiniaTargets
RUNTIME
DESTINATION var/trell/apps/test_job/bin/
COMPONENT mod_trell
)
Expand Down
4 changes: 3 additions & 1 deletion js/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@ target_link_libraries ( tinia_javascript


install( TARGETS
tinia_javascript LIBRARY
tinia_javascript
EXPORT TiniaTargets
LIBRARY
DESTINATION lib/
ARCHIVE DESTINATION lib/
COMPONENT qtcontroller)
4 changes: 3 additions & 1 deletion src/jobcontroller/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ TARGET_LINK_LIBRARIES( jobcontroller ${Boost_LIBRARIES} model )
COMPONENT jobcontroller_dev)

install( TARGETS
jobcontroller LIBRARY
jobcontroller
EXPORT TiniaTargets
LIBRARY
DESTINATION lib/
ARCHIVE DESTINATION lib/
COMPONENT jobcontroller)
1 change: 1 addition & 0 deletions src/mod_trell/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ ADD_LIBRARY( mod_trell ${MOD_TRELL_SRC} )
TARGET_LINK_LIBRARIES( mod_trell ${RT} ${LIBXML2_LIBRARIES} ${LIB_APR} )

INSTALL( TARGETS mod_trell
EXPORT TiniaTargets
LIBRARY DESTINATION var/trell/module
PERMISSIONS WORLD_READ WORLD_EXECUTE OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
COMPONENT mod_trell
Expand Down
6 changes: 4 additions & 2 deletions src/model/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@ TARGET_LINK_LIBRARIES( model ${Boost_LIBRARIES} )
DESTINATION include/tinia/
COMPONENT model_dev)

install( TARGETS
model LIBRARY
install( TARGETS
model
EXPORT TiniaTargets
LIBRARY
DESTINATION lib/
ARCHIVE DESTINATION lib/
COMPONENT model )
Expand Down
4 changes: 3 additions & 1 deletion src/modelxml/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ ${LIBXML2_LIBRARIES} model)


install( TARGETS
modelxml LIBRARY
modelxml
EXPORT TiniaTargets
LIBRARY
DESTINATION lib/
ARCHIVE DESTINATION lib/
COMPONENT modelxml)
4 changes: 3 additions & 1 deletion src/qtcontroller/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,9 @@ ENDIF()
DESTINATION include/tinia/qtcontroller/moc COMPONENT qtcontroller_dev)

install( TARGETS
qtcontroller LIBRARY
qtcontroller
EXPORT TiniaTargets
LIBRARY
DESTINATION lib/
ARCHIVE DESTINATION lib/
COMPONENT qtcontroller)
4 changes: 3 additions & 1 deletion src/renderlist/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ TARGET_LINK_LIBRARIES( renderlist )
COMPONENT renderlist_dev)

install( TARGETS
renderlist LIBRARY
renderlist
EXPORT TiniaTargets
LIBRARY
DESTINATION lib/
ARCHIVE DESTINATION lib/
COMPONENT renderlist)
Expand Down
4 changes: 3 additions & 1 deletion src/renderlistgl/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ TARGET_LINK_LIBRARIES( renderlistgl
COMPONENT renderlistgl_dev)

install( TARGETS
renderlistgl LIBRARY
renderlistgl
EXPORT TiniaTargets
LIBRARY
DESTINATION lib/
ARCHIVE DESTINATION lib/
COMPONENT renderlistgl)
3 changes: 2 additions & 1 deletion src/trell/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ ADD_LIBRARY( trell ${LIB_TRELL_SRC} ${LIB_TRELL_HEADERS})
TARGET_LINK_LIBRARIES( trell ${RT} renderlist ${LIBXML2_LIBRARIES} ${LIB_APR} ${GLEW_LIBRARY} ${OPENGL_LIBRARY} model modelxml jobcontroller)

INSTALL( TARGETS trell
EXPORT TiniaTargets
LIBRARY DESTINATION lib
COMPONENT libtrell
PERMISSIONS WORLD_READ WORLD_EXECUTE OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
Expand All @@ -22,4 +23,4 @@ INSTALL( FILES
${LIB_TRELL_HEADERS}
DESTINATION include/tinia/trell
COMPONENT libtrell-dev
)
)
1 change: 1 addition & 0 deletions src/trell_master/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ TARGET_LINK_LIBRARIES( trell_master renderlist renderlistgl trell ${RT} jobcontr

INSTALL( TARGETS
trell_master
EXPORT TiniaTargets
RUNTIME DESTINATION var/trell/bin
COMPONENT mod_trell
PERMISSIONS WORLD_READ WORLD_EXECUTE OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
Expand Down
Loading

0 comments on commit 61e1b83

Please sign in to comment.