From 26e8f3fd28464754c0466e100aec5601f0769f9c Mon Sep 17 00:00:00 2001 From: Luis Ibanez Date: Wed, 1 Sep 2010 00:52:26 +0000 Subject: [PATCH] COMP: Fixing configuration for static builds. Fixing dependencies that several executables have on getopt.c, convert.c and index.c. Some refactoring is going to be required in order to have a cleaner configuration process and make it easier to maintain. --- jp3d/codec/CMakeLists.txt | 6 +++--- jpwl/CMakeLists.txt | 42 ++++++++++++++++++++++++++++++++------- mj2/CMakeLists.txt | 6 ++++++ 3 files changed, 44 insertions(+), 10 deletions(-) diff --git a/jp3d/codec/CMakeLists.txt b/jp3d/codec/CMakeLists.txt index 5ed13e70..24595c7a 100644 --- a/jp3d/codec/CMakeLists.txt +++ b/jp3d/codec/CMakeLists.txt @@ -27,9 +27,9 @@ ENDIF(DONT_HAVE_GETOPT) # Do the proper thing when building static...if only there was configured # headers or def files instead -#IF(NOT BUILD_SHARED_LIBS) -# ADD_DEFINITIONS(-DOPJ_STATIC) -#ENDIF(NOT BUILD_SHARED_LIBS) +IF(NOT BUILD_SHARED_LIBS) + ADD_DEFINITIONS(-DOPJ_STATIC) +ENDIF(NOT BUILD_SHARED_LIBS) #FIND_PACKAGE(TIFF REQUIRED) diff --git a/jpwl/CMakeLists.txt b/jpwl/CMakeLists.txt index 591c95f5..a24210f0 100755 --- a/jpwl/CMakeLists.txt +++ b/jpwl/CMakeLists.txt @@ -24,31 +24,59 @@ SET(OPJ_SRCS ) SET(JPWL_SRCS crc.c jpwl.c jpwl_lib.c rs.c) +# Then check if getopt is present: +INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake) +SET(DONT_HAVE_GETOPT 1) +IF(UNIX) #I am pretty sure only *nix sys have this anyway + CHECK_INCLUDE_FILE("getopt.h" CMAKE_HAVE_GETOPT_H) + # Seems like we need the contrary: + IF(CMAKE_HAVE_GETOPT_H) + SET(DONT_HAVE_GETOPT 0) + ENDIF(CMAKE_HAVE_GETOPT_H) +ENDIF(UNIX) + +# If not getopt was found then add it to the lib: +IF(DONT_HAVE_GETOPT) + ADD_DEFINITIONS(-DDONT_HAVE_GETOPT) + SET(OPJ_SRCS + ${OPJ_SRCS} + ../codec/compat/getopt.c + ) +ENDIF(DONT_HAVE_GETOPT) + ADD_LIBRARY(openjpeg_JPWL ${JPWL_SRCS} ${OPJ_SRCS}) # Do the proper thing when building static...if only there was configured # headers or def files instead -#IF(NOT BUILD_SHARED_LIBS) -# ADD_DEFINITIONS(-DOPJ_STATIC) -#ENDIF(NOT BUILD_SHARED_LIBS) +IF(NOT BUILD_SHARED_LIBS) + ADD_DEFINITIONS(-DOPJ_STATIC) +ENDIF(NOT BUILD_SHARED_LIBS) INCLUDE_DIRECTORIES( ${OPENJPEG_SOURCE_DIR}/libopenjpeg ) FIND_PACKAGE(TIFF REQUIRED) +FIND_PACKAGE(PNG REQUIRED) +INCLUDE_DIRECTORIES( ${PNG_INCLUDE_DIR} ) +INCLUDE_DIRECTORIES( ${TIFF_INCLUDE_DIR} ) ADD_EXECUTABLE(JPWL_j2k_to_image -../codec/convert.c ../codec/j2k_to_image.c +../codec/convert.c +../codec/index.c +../codec/j2k_to_image.c ) -TARGET_LINK_LIBRARIES(JPWL_j2k_to_image openjpeg_JPWL ${TIFF_LIBRARIES}) +TARGET_LINK_LIBRARIES(JPWL_j2k_to_image ${OPJ_PREFIX}openjpeg_JPWL ${TIFF_LIBRARIES}) IF(UNIX) TARGET_LINK_LIBRARIES(JPWL_j2k_to_image m) ENDIF(UNIX) ADD_EXECUTABLE(JPWL_image_to_j2k -../codec/convert.c ../codec/image_to_j2k.c) -TARGET_LINK_LIBRARIES(JPWL_image_to_j2k openjpeg_JPWL ${TIFF_LIBRARIES}) +../codec/convert.c +../codec/index.c +../codec/image_to_j2k.c +) +TARGET_LINK_LIBRARIES(JPWL_image_to_j2k ${OPJ_PREFIX}openjpeg_JPWL ${TIFF_LIBRARIES}) IF(UNIX) TARGET_LINK_LIBRARIES(JPWL_image_to_j2k m) ENDIF(UNIX) diff --git a/mj2/CMakeLists.txt b/mj2/CMakeLists.txt index 1e884b82..c1fa4bf3 100644 --- a/mj2/CMakeLists.txt +++ b/mj2/CMakeLists.txt @@ -5,6 +5,12 @@ INCLUDE_DIRECTORIES( ${OPENJPEG_SOURCE_DIR}/libopenjpeg ) +# Do the proper thing when building static...if only there was configured +# headers or def files instead +IF(NOT BUILD_SHARED_LIBS) + ADD_DEFINITIONS(-DOPJ_STATIC) +ENDIF(NOT BUILD_SHARED_LIBS) + ADD_EXECUTABLE(frames_to_mj2 frames_to_mj2.c compat/getopt.c