summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathieu Malaterre <mathieu.malaterre@gmail.com>2010-06-21 13:54:49 +0000
committerMathieu Malaterre <mathieu.malaterre@gmail.com>2010-06-21 13:54:49 +0000
commitecd70f033cbc0cc1663004522277ebed4c9d9a3d (patch)
treedfaaa5d13232208acda65d18b6c7e482537f60dc
parent0c69d6e1a845b2649570dc05159b5a5c75cbc242 (diff)
Start using cmake API for easy packaging
-rw-r--r--CMake/OpenJPEGConfig.cmake.in48
-rw-r--r--CMakeLists.txt15
-rw-r--r--ChangeLog1
-rw-r--r--codec/CMakeLists.txt5
-rw-r--r--libopenjpeg/CMakeLists.txt5
5 files changed, 71 insertions, 3 deletions
diff --git a/CMake/OpenJPEGConfig.cmake.in b/CMake/OpenJPEGConfig.cmake.in
new file mode 100644
index 00000000..d2e63417
--- /dev/null
+++ b/CMake/OpenJPEGConfig.cmake.in
@@ -0,0 +1,48 @@
+#-----------------------------------------------------------------------------
+#
+# OPENJPEGConfig.cmake - CMake configuration file for external projects.
+#
+# This file is configured by OPENJPEG and used by the UseOPENJPEG.cmake
+# module to load OPENJPEG's settings for an external project.
+@OPENJPEG_CONFIG_INSTALL_ONLY@
+# The OPENJPEG version number.
+SET(OPENJPEG_MAJOR_VERSION "@OPENJPEG_VERSION_MAJOR@")
+SET(OPENJPEG_MINOR_VERSION "@OPENJPEG_VERSION_MINOR@")
+SET(OPENJPEG_BUILD_VERSION "@OPENJPEG_VERSION_BUILD@")
+
+# The libraries.
+SET(OPENJPEG_LIBRARIES "@OPENJPEG_LIBRARIES@")
+
+# The CMake macros dir.
+SET(OPENJPEG_CMAKE_DIR "@OPENJPEG_CMAKE_DIR_CONFIG@")
+
+# The configuration options.
+SET(OPENJPEG_BUILD_SHARED_LIBS "@OPENJPEG_BUILD_SHARED_LIBS@")
+
+# The "use" file.
+SET(OPENJPEG_USE_FILE "@OPENJPEG_USE_FILE_CONFIG@")
+
+get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+if(EXISTS ${SELF_DIR}/OPENJPEGTargets.cmake)
+ # This is an install tree
+ include(${SELF_DIR}/OPENJPEGTargets.cmake)
+ get_filename_component(OPENJPEG_INCLUDE_ROOT "${SELF_DIR}/../../@OPENJPEG_INSTALL_INCLUDE_DIR@" ABSOLUTE)
+ set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG_INCLUDE_ROOT})
+
+else(EXISTS ${SELF_DIR}/OPENJPEGTargets.cmake)
+ if(EXISTS ${SELF_DIR}/OPENJPEGExports.cmake)
+ # This is a build tree
+ SET( OPENJPEG_INCLUDE_DIRS @OPENJPEG_INCLUDE_PATH@)
+
+ include(${SELF_DIR}/OPENJPEGExports.cmake)
+
+ else(EXISTS ${SELF_DIR}/OPENJPEGExports.cmake)
+ message(FATAL_ERROR "ooops")
+ endif(EXISTS ${SELF_DIR}/OPENJPEGExports.cmake)
+endif(EXISTS ${SELF_DIR}/OPENJPEGTargets.cmake)
+
+set(OPENJPEG_USE_FILE ${SELF_DIR}/UseOPENJPEG.cmake)
+
+# Backward compatible part:
+SET(OPENJPEG_FOUND TRUE)
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 27203d9c..8603275b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -71,6 +71,11 @@ IF(NOT OPENJPEG_INSTALL_DOC_DIR)
SET(OPENJPEG_INSTALL_DOC_DIR "share/doc/${subdir}")
ENDIF(NOT OPENJPEG_INSTALL_DOC_DIR)
+IF(NOT OPENJPEG_INSTALL_PACKAGE_DIR)
+ SET(OPENJPEG_INSTALL_PACKAGE_DIR ${OPENJPEG_INSTALL_LIB_DIR}/${subdir}
+ CACHE INTERNAL "")
+ENDIF(NOT OPENJPEG_INSTALL_PACKAGE_DIR)
+
#-----------------------------------------------------------------------------
# Test for some required system information.
INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityC.cmake)
@@ -176,3 +181,13 @@ IF(CMAKE_COMPILER_IS_GNUCC)
SET(CMAKE_C_FLAGS_RELEASE "-ffast-math ${CMAKE_C_FLAGS_RELEASE}")
ENDIF(CMAKE_COMPILER_IS_GNUCC)
+# install all targets referenced as OPENJPEGTargets
+install(EXPORT OpenJPEGTargets DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR})
+CONFIGURE_FILE( ${OPENJPEG_SOURCE_DIR}/CMake/OpenJPEGConfig.cmake.in
+ ${OPENJPEG_BINARY_DIR}/OpenJPEGConfig.cmake
+ @ONLY
+)
+INSTALL( FILES ${OPENJPEG_BINARY_DIR}/OpenJPEGConfig.cmake
+ DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR}
+)
+
diff --git a/ChangeLog b/ChangeLog
index 70edb2c1..92e0470f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,7 @@ Jun 21, 2010
* [MM] j2k_to_image properly return error code
* [MM] increase coverage by testing all codecs
* [MM] fix installation. Place in subfolder to handle both API
+* [MM] Start using cmake API for easy packaging
April 8, 2010
* [FOD] Fixed problem with Borland C++ Builder (Borland C do not have lrintf). Thanks Marek Mauder for this fix.
diff --git a/codec/CMakeLists.txt b/codec/CMakeLists.txt
index bbdaee19..e55d19da 100644
--- a/codec/CMakeLists.txt
+++ b/codec/CMakeLists.txt
@@ -51,7 +51,10 @@ FOREACH(exe j2k_to_image image_to_j2k)
TARGET_LINK_LIBRARIES(${exe} m)
ENDIF(UNIX)
# Install exe
- INSTALL_TARGETS(/bin/ ${exe})
+ INSTALL(TARGETS ${exe}
+ EXPORT OpenJPEGTargets
+ DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
+ )
ENDFOREACH(exe)
if(BUILD_TESTING)
diff --git a/libopenjpeg/CMakeLists.txt b/libopenjpeg/CMakeLists.txt
index 10e9ee21..2e5746de 100644
--- a/libopenjpeg/CMakeLists.txt
+++ b/libopenjpeg/CMakeLists.txt
@@ -70,10 +70,11 @@ ENDIF(UNIX)
# Install library
INSTALL(TARGETS ${OPENJPEG_LIBRARY_NAME}
- DESTINATION ${OPENJPEG_INSTALL_LIB_DIR}
+ EXPORT OpenJPEGTargets
+ DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries
)
# Install includes files
INSTALL(FILES openjpeg.h
- DESTINATION ${OPENJPEG_INSTALL_INCLUDE_DIR}
+ DESTINATION ${OPENJPEG_INSTALL_INCLUDE_DIR} COMPONENT Headers
)