From a098921d34c023c25dae8911f9ec94356db1592f Mon Sep 17 00:00:00 2001 From: Antonin Descampe Date: Fri, 12 Aug 2011 14:59:28 +0000 Subject: [PATCH] added cmake support to openjpip --- CHANGES | 3 ++ CMake/FindFCGI.cmake | 20 +++++++++ CMakeLists.txt | 5 ++- applications/CMakeLists.txt | 4 ++ applications/jpip/CHANGES | 3 ++ applications/jpip/CMakeLists.txt | 5 +++ applications/jpip/libopenjpip/CMakeLists.txt | 44 +++++++++++++++++++ applications/jpip/opj_client/CMakeLists.txt | 1 + .../opj_client/opj_dec_server/CMakeLists.txt | 27 ++++++++++++ applications/jpip/opj_server/CMakeLists.txt | 29 ++++++++++++ applications/jpip/tools/CMakeLists.txt | 39 ++++++++++++++++ .../jpip/tools/indexer/CMakeLists.txt | 26 +++++++++++ thirdparty/CMakeLists.txt | 17 +++++++ 13 files changed, 221 insertions(+), 2 deletions(-) create mode 100644 CMake/FindFCGI.cmake create mode 100644 applications/jpip/CMakeLists.txt create mode 100644 applications/jpip/libopenjpip/CMakeLists.txt create mode 100644 applications/jpip/opj_client/CMakeLists.txt create mode 100644 applications/jpip/opj_client/opj_dec_server/CMakeLists.txt create mode 100644 applications/jpip/opj_server/CMakeLists.txt create mode 100644 applications/jpip/tools/CMakeLists.txt create mode 100644 applications/jpip/tools/indexer/CMakeLists.txt diff --git a/CHANGES b/CHANGES index 0ab2350e..41a06bf3 100644 --- a/CHANGES +++ b/CHANGES @@ -5,6 +5,9 @@ What's New for OpenJPEG ! : changed + : added +August 12, 2011 ++ [antonin] added cmake support to openjpip + August 11, 2011 * [mickael] Fixed issue #76 * [antonin] minor bug fix in configure.ac (credit to Vincent Torri) diff --git a/CMake/FindFCGI.cmake b/CMake/FindFCGI.cmake new file mode 100644 index 00000000..ff762775 --- /dev/null +++ b/CMake/FindFCGI.cmake @@ -0,0 +1,20 @@ +# Look for the header file. +FIND_PATH(FCGI_INCLUDE_DIR NAMES fastcgi.h) + +# Look for the library. +FIND_LIBRARY(FCGI_LIBRARY NAMES fcgi) + +# Handle the QUIETLY and REQUIRED arguments and set FCGI_FOUND to TRUE if all listed variables are TRUE. +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(FCGI DEFAULT_MSG FCGI_LIBRARY FCGI_INCLUDE_DIR) + +# Copy the results to the output variables. +IF(FCGI_FOUND) + SET( ${FCGI_LIBRARY}) + SET(FCGI_INCLUDE_DIRS ${FCGI_INCLUDE_DIR}) +ELSE(FCGI_FOUND) + SET(FCGI_LIBRARIES) + SET(FCGI_INCLUDE_DIRS) +ENDIF(FCGI_FOUND) + +MARK_AS_ADVANCED(FCGI_INCLUDE_DIRS FCGI_LIBRARIES) diff --git a/CMakeLists.txt b/CMakeLists.txt index de047b78..9dab7393 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -212,12 +212,13 @@ ADD_SUBDIRECTORY(libopenjpeg) # Build Applications OPTION(BUILD_CODEC "Build the CODEC executables" ON) OPTION(BUILD_MJ2 "Build the MJ2 executables." OFF) +OPTION(BUILD_JPIP "Build the JPIP library and executables." OFF) -IF(BUILD_CODEC OR BUILD_MJ2) +IF(BUILD_CODEC OR BUILD_MJ2 OR BUILD_JPIP) OPTION(BUILD_THIRDPARTY "Build the thirdparty executables if it is needed" OFF) ADD_SUBDIRECTORY(thirdparty) ADD_SUBDIRECTORY(applications) -ENDIF (BUILD_CODEC OR BUILD_MJ2) +ENDIF (BUILD_CODEC OR BUILD_MJ2 OR BUILD_JPIP) #----------------------------------------------------------------------------- # opj_config.h generation (2/2) diff --git a/applications/CMakeLists.txt b/applications/CMakeLists.txt index 3b65ade1..d26e26db 100644 --- a/applications/CMakeLists.txt +++ b/applications/CMakeLists.txt @@ -7,3 +7,7 @@ ENDIF(BUILD_CODEC) IF(BUILD_MJ2) ADD_SUBDIRECTORY(mj2) ENDIF(BUILD_MJ2) + +IF(BUILD_JPIP) + ADD_SUBDIRECTORY(jpip) +ENDIF(BUILD_JPIP) diff --git a/applications/jpip/CHANGES b/applications/jpip/CHANGES index acf4d57f..755c205d 100644 --- a/applications/jpip/CHANGES +++ b/applications/jpip/CHANGES @@ -5,6 +5,9 @@ What's New for OpenJPIP ! : changed + : added +August 12, 2011 ++ [antonin] added cmake support to openjpip + July 6, 2011 * [antonin] JPIP : fixed autotools to work with recent name changes diff --git a/applications/jpip/CMakeLists.txt b/applications/jpip/CMakeLists.txt new file mode 100644 index 00000000..b6f6e2a5 --- /dev/null +++ b/applications/jpip/CMakeLists.txt @@ -0,0 +1,5 @@ + +ADD_SUBDIRECTORY(libopenjpip) +ADD_SUBDIRECTORY(opj_server) +ADD_SUBDIRECTORY(opj_client) +ADD_SUBDIRECTORY(tools) \ No newline at end of file diff --git a/applications/jpip/libopenjpip/CMakeLists.txt b/applications/jpip/libopenjpip/CMakeLists.txt new file mode 100644 index 00000000..3f42af7c --- /dev/null +++ b/applications/jpip/libopenjpip/CMakeLists.txt @@ -0,0 +1,44 @@ +INCLUDE_REGULAR_EXPRESSION("^.*$") + +INCLUDE_DIRECTORIES( + ${FCGI_INCLUDE_DIRNAME} +) + +# Defines the source code for the library +SET(OPENJPIP_SRCS +${CMAKE_CURRENT_SOURCE_DIR}/boxheader_manager.c +${CMAKE_CURRENT_SOURCE_DIR}/codestream_manager.c +${CMAKE_CURRENT_SOURCE_DIR}/imgreg_manager.c +${CMAKE_CURRENT_SOURCE_DIR}/marker_manager.c +${CMAKE_CURRENT_SOURCE_DIR}/msgqueue_manager.c +${CMAKE_CURRENT_SOURCE_DIR}/box_manager.c +${CMAKE_CURRENT_SOURCE_DIR}/faixbox_manager.c +${CMAKE_CURRENT_SOURCE_DIR}/index_manager.c +${CMAKE_CURRENT_SOURCE_DIR}/metadata_manager.c +${CMAKE_CURRENT_SOURCE_DIR}/placeholder_manager.c +${CMAKE_CURRENT_SOURCE_DIR}/byte_manager.c +${CMAKE_CURRENT_SOURCE_DIR}/ihdrbox_manager.c +${CMAKE_CURRENT_SOURCE_DIR}/manfbox_manager.c +${CMAKE_CURRENT_SOURCE_DIR}/mhixbox_manager.c +${CMAKE_CURRENT_SOURCE_DIR}/target_manager.c +) + +# Build the library +ADD_LIBRARY(openjpip_local ${OPENJPIP_SRCS}) + +ADD_LIBRARY(openjpip_server ${OPENJPIP_SRCS}) +TARGET_LINK_LIBRARIES(openjpip_server ${FCGI_LIBNAME}) +SET_TARGET_PROPERTIES(openjpip_server + PROPERTIES COMPILE_FLAGS "-DSERVER") + + +# Install library +INSTALL(TARGETS openjpip_local + EXPORT OpenJPEGTargets + DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries +) + +INSTALL(TARGETS openjpip_server + EXPORT OpenJPEGTargets + DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries +) diff --git a/applications/jpip/opj_client/CMakeLists.txt b/applications/jpip/opj_client/CMakeLists.txt new file mode 100644 index 00000000..8cf71ace --- /dev/null +++ b/applications/jpip/opj_client/CMakeLists.txt @@ -0,0 +1 @@ +ADD_SUBDIRECTORY(opj_dec_server) \ No newline at end of file diff --git a/applications/jpip/opj_client/opj_dec_server/CMakeLists.txt b/applications/jpip/opj_client/opj_dec_server/CMakeLists.txt new file mode 100644 index 00000000..437d706f --- /dev/null +++ b/applications/jpip/opj_client/opj_dec_server/CMakeLists.txt @@ -0,0 +1,27 @@ + +SET(OPJ_DEC_SERVER_SRCS +${CMAKE_CURRENT_SOURCE_DIR}/cache_manager.c +${CMAKE_CURRENT_SOURCE_DIR}/opj_dec_server.c +${CMAKE_CURRENT_SOURCE_DIR}/jp2k_decoder.c +${CMAKE_CURRENT_SOURCE_DIR}/imgsock_manager.c +${CMAKE_CURRENT_SOURCE_DIR}/jpipstream_manager.c +) + +INCLUDE_DIRECTORIES( + ../../libopenjpip +) + +# Build executable + +ADD_EXECUTABLE(opj_dec_server ${OPJ_DEC_SERVER_SRCS}) +TARGET_LINK_LIBRARIES(opj_dec_server openjpip_local ${OPENJPEG_LIBRARY_NAME}) + +# On unix you need to link to the math library: +IF(UNIX) + TARGET_LINK_LIBRARIES(opj_dec_server m) +ENDIF(UNIX) +# Install exe +INSTALL(TARGETS opj_dec_server + EXPORT OpenJPEGTargets + DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications +) diff --git a/applications/jpip/opj_server/CMakeLists.txt b/applications/jpip/opj_server/CMakeLists.txt new file mode 100644 index 00000000..c7bcedc5 --- /dev/null +++ b/applications/jpip/opj_server/CMakeLists.txt @@ -0,0 +1,29 @@ + +# Headers file are located here: +INCLUDE_DIRECTORIES( + ${FCGI_INCLUDE_DIRNAME} + ../libopenjpip +) + +SET(OPJ_SERVER_SRCS +${CMAKE_CURRENT_SOURCE_DIR}/channel_manager.c +${CMAKE_CURRENT_SOURCE_DIR}/opj_server.c +${CMAKE_CURRENT_SOURCE_DIR}/query_parser.c +${CMAKE_CURRENT_SOURCE_DIR}/session_manager.c +) + +# Build executable + +ADD_DEFINITIONS(-DSERVER) +ADD_EXECUTABLE(opj_server ${OPJ_SERVER_SRCS}) +TARGET_LINK_LIBRARIES(opj_server openjpip_server ${FCGI_LIBNAME}) + +# On unix you need to link to the math library: +IF(UNIX) + TARGET_LINK_LIBRARIES(opj_server m) +ENDIF(UNIX) +# Install exe +INSTALL(TARGETS opj_server + EXPORT OpenJPEGTargets + DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications +) diff --git a/applications/jpip/tools/CMakeLists.txt b/applications/jpip/tools/CMakeLists.txt new file mode 100644 index 00000000..04411622 --- /dev/null +++ b/applications/jpip/tools/CMakeLists.txt @@ -0,0 +1,39 @@ + +ADD_SUBDIRECTORY(indexer) + +INCLUDE_DIRECTORIES( + ../libopenjpip +) + +ADD_EXECUTABLE(jpip_to_j2k jpip_to_j2k.c) +TARGET_LINK_LIBRARIES(jpip_to_j2k openjpip_local) +IF(UNIX) + TARGET_LINK_LIBRARIES(jpip_to_j2k m) +ENDIF(UNIX) +# Install exe +INSTALL(TARGETS jpip_to_j2k + EXPORT OpenJPEGTargets + DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications +) + +ADD_EXECUTABLE(jpip_to_jp2 jpip_to_jp2.c) +TARGET_LINK_LIBRARIES(jpip_to_jp2 openjpip_local) +IF(UNIX) + TARGET_LINK_LIBRARIES(jpip_to_jp2 m) +ENDIF(UNIX) +# Install exe +INSTALL(TARGETS jpip_to_jp2 + EXPORT OpenJPEGTargets + DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications +) + +ADD_EXECUTABLE(test_index test_index.c) +TARGET_LINK_LIBRARIES(test_index openjpip_local) +IF(UNIX) + TARGET_LINK_LIBRARIES(test_index m) +ENDIF(UNIX) +# Install exe +INSTALL(TARGETS test_index + EXPORT OpenJPEGTargets + DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications +) \ No newline at end of file diff --git a/applications/jpip/tools/indexer/CMakeLists.txt b/applications/jpip/tools/indexer/CMakeLists.txt new file mode 100644 index 00000000..43422e50 --- /dev/null +++ b/applications/jpip/tools/indexer/CMakeLists.txt @@ -0,0 +1,26 @@ +SET(INDEXER_SRCS +${CMAKE_CURRENT_SOURCE_DIR}/bio.c +${CMAKE_CURRENT_SOURCE_DIR}/cio.c +${CMAKE_CURRENT_SOURCE_DIR}/index_create.c +${CMAKE_CURRENT_SOURCE_DIR}/int.c +${CMAKE_CURRENT_SOURCE_DIR}/jp2.c +${CMAKE_CURRENT_SOURCE_DIR}/jpip.c +${CMAKE_CURRENT_SOURCE_DIR}/pi.c +${CMAKE_CURRENT_SOURCE_DIR}/t2.c +${CMAKE_CURRENT_SOURCE_DIR}/tcd.c +${CMAKE_CURRENT_SOURCE_DIR}/tgt.c +) + +# Build executable + +ADD_EXECUTABLE(index_create ${INDEXER_SRCS}) + +# On unix you need to link to the math library: +IF(UNIX) + TARGET_LINK_LIBRARIES(index_create m) +ENDIF(UNIX) +# Install exe +INSTALL(TARGETS index_create + EXPORT OpenJPEGTargets + DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications +) \ No newline at end of file diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index 00415933..a3f95095 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -143,4 +143,21 @@ ELSE (LCMS2_FOUND) # not found lcms2 ENDIF (LCMS_FOUND) ENDIF(LCMS2_FOUND) +#------------ +# Try to find lib FCGI +FIND_PACKAGE(FCGI) + +IF(FCGI_FOUND) + + SET(FCGI_LIBNAME ${FCGI_LIBRARIES} PARENT_SCOPE) + SET(FCGI_INCLUDE_DIRNAME ${FCGI_INCLUDE_DIRS} PARENT_SCOPE) + message("Your system seems to have a FCGI lib available, we will use it to build JPIP") + +ELSE (FCGI_FOUND) # not found + + message("FCGI lib not found, JPIP will not be built as it requires FCGI") + +ENDIF(FCGI_FOUND) + +