From 9aa91701104a76ce95efb8839152490c46de35f5 Mon Sep 17 00:00:00 2001 From: Mathieu Malaterre Date: Sat, 22 Jul 2006 03:47:02 +0000 Subject: [PATCH] ENH: Update CMake to do proper installation. Still using the 2.2 installation approach for now. --- CMakeLists.txt | 32 ++++++++++++++++++++++++++------ ChangeLog | 1 + codec/CMakeLists.txt | 2 ++ libopenjpeg/CMakeLists.txt | 8 +++++--- 4 files changed, 34 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a2b8d36e..53b21a14 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,14 +4,23 @@ # This CMake project will by default create a library called openjpeg # But if you want to use this project within your own (CMake) project # you will eventually like to prefix the library to avoid linking confusion -# For this purpose you can define a CMake var: OPJ_PREFIX to whatever you like +# For this purpose you can define a CMake var: OPENJPEG_NAMESPACE to whatever you like # e.g.: -# SET(OPJ_PREFIX "gdcm") -# Also if you want to test (CTest driven) you need to define : -# OPJ_STANDALONE to 1, e.g -# OPJ_STANDALONE:BOOL=1 +# SET(OPENJPEG_NAMESPACE "GDCMOPENJPEG") PROJECT(OPENJPEG C) -CMAKE_MINIMUM_REQUIRED(VERSION 2.0) +CMAKE_MINIMUM_REQUIRED(VERSION 2.2) + +IF(NOT OPENJPEG_NAMESPACE) + SET(OPENJPEG_NAMESPACE "OPENJPEG") + SET(OPENJPEG_STANDALONE 1) +ENDIF(NOT OPENJPEG_NAMESPACE) +# In all cases: +STRING(TOLOWER ${OPENJPEG_NAMESPACE} OPENJPEG_LIBRARY_NAME) + +PROJECT(${JPEG_NAMESPACE} C) + +# Do full dependency headers. +INCLUDE_REGULAR_EXPRESSION("^.*$") #----------------------------------------------------------------------------- # OPENJPEG version number, usefull for packaging and doxygen doc: @@ -29,8 +38,19 @@ OPTION(BUILD_SHARED_LIBS "Build OpenJPEG with shared libraries." OFF) # For the codec... OPTION(BUILD_EXAMPLES "Build the Examples (codec...)." OFF) + +# configure name mangling to allow multiple libraries to coexist +# peacefully +IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in) +SET(MANGLE_PREFIX ${OPENJPEG_LIBRARY_NAME}) +CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in + ${CMAKE_CURRENT_BINARY_DIR}/openjpeg_mangle.h + @ONLY IMMEDIATE) +ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in) + #----------------------------------------------------------------------------- # Always build the library +INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) SUBDIRS( libopenjpeg ) diff --git a/ChangeLog b/ChangeLog index d6cd8585..b4104774 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,7 @@ What's New for OpenJPEG + : added July 21, 2006 +* [Mathieu Malaterre] Install exe and lib and include correctly * [Mathieu Malaterre] Fixed mem leaks and greyscale bmp * [Mathieu Malaterre] Fix pgx name length + random memory access ! [Mathieu Malaterre] API is now const diff --git a/codec/CMakeLists.txt b/codec/CMakeLists.txt index 3f3c7d5a..7ca90e10 100644 --- a/codec/CMakeLists.txt +++ b/codec/CMakeLists.txt @@ -44,6 +44,8 @@ FOREACH(exe j2k_to_image image_to_j2k) IF(UNIX) TARGET_LINK_LIBRARIES(${exe} -lm) ENDIF(UNIX) + # Install exe + INSTALL_TARGETS(/bin/ ${exe}) ENDFOREACH(exe) diff --git a/libopenjpeg/CMakeLists.txt b/libopenjpeg/CMakeLists.txt index 2c1816f4..ceb9029f 100644 --- a/libopenjpeg/CMakeLists.txt +++ b/libopenjpeg/CMakeLists.txt @@ -1,6 +1,6 @@ INCLUDE_REGULAR_EXPRESSION("^.*$") # Defines the source code for the library -SET(OpenJPEG_SRCS +SET(OPENJPEG_SRCS bio.c cio.c dwt.c @@ -31,8 +31,10 @@ IF(WIN32) ENDIF(WIN32) # Create the library -ADD_LIBRARY(${OPJ_PREFIX}openjpeg ${OpenJPEG_SRCS}) +ADD_LIBRARY(${OPENJPEG_LIBRARY_NAME} ${OPENJPEG_SRCS}) # Install library -INSTALL_TARGETS(/lib/ ${OPJ_PREFIX}openjpeg) +INSTALL_TARGETS(/lib/ ${OPENJPEG_LIBRARY_NAME}) +# Install includes files +INSTALL_FILES(/include .h)