summaryrefslogtreecommitdiff
path: root/src/bin/jpip/CMakeLists.txt
diff options
context:
space:
mode:
authorMathieu Malaterre <mathieu.malaterre@gmail.com>2012-09-28 08:11:41 +0000
committerMathieu Malaterre <mathieu.malaterre@gmail.com>2012-09-28 08:11:41 +0000
commitd518970039a19a2a9b6d2bdd592cc88a43897bbb (patch)
tree57bac2cf7e63e9352228231062763baac627563c /src/bin/jpip/CMakeLists.txt
parent8363a6ab1e031bb4b2e40a92e56efd40fdab1aa1 (diff)
[trunk] Start FolderReorgProposal task
Update issue 177
Diffstat (limited to 'src/bin/jpip/CMakeLists.txt')
-rw-r--r--src/bin/jpip/CMakeLists.txt150
1 files changed, 150 insertions, 0 deletions
diff --git a/src/bin/jpip/CMakeLists.txt b/src/bin/jpip/CMakeLists.txt
new file mode 100644
index 00000000..5a3fc0ff
--- /dev/null
+++ b/src/bin/jpip/CMakeLists.txt
@@ -0,0 +1,150 @@
+# Headers file are located here:
+include_directories(
+ ${OPENJPEG_SOURCE_DIR}/src/lib/openjp2 # opj_stdint.h
+ ${OPENJPEG_SOURCE_DIR}/src/lib/openjpip
+ ${FCGI_INCLUDE_DIRS}
+)
+
+# Tool to embed metadata into JP2 file
+add_executable(addXMLinJP2 addXMLinJP2.c)
+# Install exe
+install(TARGETS addXMLinJP2
+ EXPORT OpenJPEGTargets
+ DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
+ )
+
+if(BUILD_JPIP_SERVER)
+
+ set(OPJ_SERVER_SRCS
+ ${CMAKE_CURRENT_SOURCE_DIR}/opj_server.c
+ )
+
+ # Build executable
+ add_executable(opj_server ${OPJ_SERVER_SRCS})
+ target_link_libraries(opj_server openjpip_server)
+ set_property(
+ TARGET opj_server
+ APPEND PROPERTY
+ COMPILE_DEFINITIONS SERVER QUIT_SIGNAL="quitJPIP"
+ )
+
+ # On unix you need to link to the math library:
+ if(UNIX)
+ target_link_libraries(opj_server m)
+ endif()
+
+ # Install exe
+ install(TARGETS opj_server
+ EXPORT OpenJPEGTargets
+ DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
+ )
+endif()
+
+set(EXES
+ opj_dec_server
+ jpip_to_jp2
+ jpip_to_j2k
+ test_index
+ )
+foreach(exe ${EXES})
+ add_executable(${exe} ${exe}.c)
+ target_link_libraries(${exe} openjpip_local)
+ install(TARGETS ${exe}
+ EXPORT OpenJPEGTargets
+ DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
+ )
+endforeach()
+
+# Build the two java clients:
+find_package(Java 1.5 COMPONENTS Development) # javac, jar
+
+# Only build the java viewer if dev is found:
+if(Java_Development_FOUND AND Java_JAVAC_EXECUTABLE)
+ set(jflags $ENV{JFLAGS})
+ # 1. opj_viewer
+ # build dep list:
+ file(GLOB java1_srcs "opj_viewer/src/*.java")
+
+ # make sure target javac dir exists:
+ file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes1)
+ # Build java
+ add_custom_command(
+ OUTPUT ${LIBRARY_OUTPUT_PATH}/opj_viewer.jar
+ COMMAND ${Java_JAVAC_EXECUTABLE} ${jflags}
+ ${java1_srcs} -d ${CMAKE_CURRENT_BINARY_DIR}/classes1
+ COMMAND ${Java_JAR_EXECUTABLE} cfm ${LIBRARY_OUTPUT_PATH}/opj_viewer.jar
+ ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/dist/manifest.txt -C
+ ${CMAKE_CURRENT_BINARY_DIR}/classes1 .
+ DEPENDS ${java1_srcs}
+ ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/dist/manifest.txt
+ COMMENT "javac *.java; jar cvf -> opj_viewer.jar"
+ )
+
+ # name the target
+ add_custom_target(OPJViewerJar ALL
+ DEPENDS ${LIBRARY_OUTPUT_PATH}/opj_viewer.jar
+ COMMENT "building opj_viewer.jar"
+ )
+
+ install(FILES ${LIBRARY_OUTPUT_PATH}/opj_viewer.jar
+ DESTINATION ${OPENJPEG_INSTALL_SHARE_DIR} COMPONENT JavaModule
+ )
+
+ # 2. opj_viewer_xerces
+ # search for package org.apache.xerces.parsers
+ find_file(APACHE_XERCES_JAR
+ NAMES xerces-j2.jar xercesImpl.jar
+ PATHS /usr/share/java/
+ NO_DEFAULT_PATH
+ )
+ mark_as_advanced(APACHE_XERCES_JAR)
+
+ if(EXISTS ${APACHE_XERCES_JAR})
+ configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer_xerces/dist/manifest.txt.in
+ ${CMAKE_CURRENT_BINARY_DIR}/opj_viewer_xerces/dist/manifest.txt
+ @ONLY
+ )
+ # build dep list:
+ file(GLOB java2_srcs "opj_viewer_xerces/src/*.java")
+
+ # Need some common files:
+ list(APPEND java2_srcs
+ ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/src/ImageManager.java
+ ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/src/ImgdecClient.java
+ ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/src/JPIPHttpClient.java
+ ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/src/MML.java
+ ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/src/PnmImage.java
+ ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/src/RegimViewer.java
+ ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/src/ResizeListener.java
+ )
+
+ # make sure target javac dir exists:
+ file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes2)
+ # Build java
+ add_custom_command(
+ OUTPUT ${LIBRARY_OUTPUT_PATH}/opj_viewer_xerces.jar
+ COMMAND ${Java_JAVAC_EXECUTABLE} ${jflags}
+ -classpath ${APACHE_XERCES_JAR}
+ ${java2_srcs} -d ${CMAKE_CURRENT_BINARY_DIR}/classes2
+ COMMAND ${Java_JAR_EXECUTABLE} cfm ${LIBRARY_OUTPUT_PATH}/opj_viewer_xerces.jar
+ ${CMAKE_CURRENT_BINARY_DIR}/opj_viewer_xerces/dist/manifest.txt
+ -C ${CMAKE_CURRENT_BINARY_DIR}/classes2 .
+ DEPENDS ${java2_srcs}
+ ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer_xerces/dist/manifest.txt.in
+ COMMENT "javac *.java; jar cvf -> opj_viewer_xerces.jar"
+ )
+
+ # name the target
+ add_custom_target(OPJViewerXercesJar ALL
+ DEPENDS ${LIBRARY_OUTPUT_PATH}/opj_viewer_xerces.jar
+ COMMENT "building opj_viewer_xerces.jar"
+ )
+
+ install(FILES ${LIBRARY_OUTPUT_PATH}/opj_viewer_xerces.jar
+ DESTINATION ${OPENJPEG_INSTALL_SHARE_DIR} COMPONENT JavaModule
+ )
+ endif()
+else()
+ message(WARNING "No java compiler found. Wont be able to build java viewer")
+endif()