update j2k_lib with new opj type
[openjpeg.git] / applications / jpip / util / CMakeLists.txt
1 # Headers file are located here:
2 include_directories(
3   ${OPENJPEG_SOURCE_DIR}/libopenjpeg # opj_stdint.h
4   ${OPENJPEG_SOURCE_DIR}/applications/jpip/libopenjpip
5   ${FCGI_INCLUDE_DIRS}
6 )
7
8 # Tool to embed metadata into JP2 file
9 add_executable(addXMLinJP2 addXMLinJP2.c)
10 # Install exe
11 install(TARGETS addXMLinJP2
12   EXPORT OpenJPEGTargets
13   DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
14   )
15
16 if(BUILD_JPIP_SERVER)
17
18   set(OPJ_SERVER_SRCS
19   ${CMAKE_CURRENT_SOURCE_DIR}/opj_server.c
20   )
21
22   # Build executable
23   add_executable(opj_server ${OPJ_SERVER_SRCS})
24   target_link_libraries(opj_server openjpip_server)
25   set_property(
26     TARGET opj_server
27     APPEND PROPERTY
28     COMPILE_DEFINITIONS SERVER QUIT_SIGNAL="quitJPIP"
29     )
30
31   # On unix you need to link to the math library:
32   if(UNIX)
33     target_link_libraries(opj_server m)
34   endif()
35
36   # Install exe
37   install(TARGETS opj_server
38     EXPORT OpenJPEGTargets
39     DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
40     )
41 endif()
42
43 set(EXES
44   opj_dec_server
45   jpip_to_jp2
46   jpip_to_j2k
47   test_index
48   )
49 foreach(exe ${EXES})
50   add_executable(${exe} ${exe}.c)
51   target_link_libraries(${exe} openjpip_local)
52   install(TARGETS ${exe}
53     EXPORT OpenJPEGTargets
54     DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
55     )
56 endforeach()
57
58 # Build the two java clients:
59 find_package(Java 1.5 COMPONENTS Development) # javac, jar
60
61 # Only build the java viewer if dev is found:
62 if(Java_Development_FOUND AND Java_JAVAC_EXECUTABLE)
63   set(jflags $ENV{JFLAGS})
64   # 1. opj_viewer
65   # build dep list:
66   file(GLOB java1_srcs "opj_viewer/src/*.java")
67
68   # make sure target javac dir exists:
69   file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes1)
70   # Build java
71   add_custom_command(
72     OUTPUT ${LIBRARY_OUTPUT_PATH}/opj_viewer.jar
73     COMMAND ${Java_JAVAC_EXECUTABLE} ${jflags}
74     ${java1_srcs} -d ${CMAKE_CURRENT_BINARY_DIR}/classes1
75     COMMAND ${Java_JAR_EXECUTABLE} cfm ${LIBRARY_OUTPUT_PATH}/opj_viewer.jar
76     ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/dist/manifest.txt -C
77     ${CMAKE_CURRENT_BINARY_DIR}/classes1 .
78     DEPENDS ${java1_srcs}
79     ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/dist/manifest.txt
80     COMMENT "javac *.java; jar cvf -> opj_viewer.jar"
81     )
82
83   # name the target
84   add_custom_target(OPJViewerJar ALL
85     DEPENDS ${LIBRARY_OUTPUT_PATH}/opj_viewer.jar
86     COMMENT "building opj_viewer.jar"
87     )
88
89   install(FILES ${LIBRARY_OUTPUT_PATH}/opj_viewer.jar
90     DESTINATION ${OPENJPEG_INSTALL_SHARE_DIR} COMPONENT JavaModule
91     )
92
93   # 2. opj_viewer_xerces
94   # search for package org.apache.xerces.parsers
95   find_file(APACHE_XERCES_JAR
96     NAMES xerces-j2.jar xercesImpl.jar
97     PATHS /usr/share/java/
98     NO_DEFAULT_PATH
99     )
100   mark_as_advanced(APACHE_XERCES_JAR)
101
102   if(EXISTS ${APACHE_XERCES_JAR})
103     configure_file(
104       ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer_xerces/dist/manifest.txt.in
105       ${CMAKE_CURRENT_BINARY_DIR}/opj_viewer_xerces/dist/manifest.txt
106       @ONLY
107       )
108     # build dep list:
109     file(GLOB java2_srcs "opj_viewer_xerces/src/*.java")
110
111     # Need some common files:
112     list(APPEND java2_srcs
113       ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/src/ImageManager.java
114       ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/src/ImgdecClient.java
115       ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/src/JPIPHttpClient.java
116       ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/src/MML.java
117       ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/src/PnmImage.java
118       ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/src/RegimViewer.java
119       ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/src/ResizeListener.java
120       )
121
122     # make sure target javac dir exists:
123     file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes2)
124     # Build java
125     add_custom_command(
126       OUTPUT ${LIBRARY_OUTPUT_PATH}/opj_viewer_xerces.jar
127       COMMAND ${Java_JAVAC_EXECUTABLE} ${jflags}
128       -classpath ${APACHE_XERCES_JAR}
129       ${java2_srcs} -d ${CMAKE_CURRENT_BINARY_DIR}/classes2
130       COMMAND ${Java_JAR_EXECUTABLE} cfm ${LIBRARY_OUTPUT_PATH}/opj_viewer_xerces.jar
131       ${CMAKE_CURRENT_BINARY_DIR}/opj_viewer_xerces/dist/manifest.txt
132       -C ${CMAKE_CURRENT_BINARY_DIR}/classes2 .
133       DEPENDS ${java2_srcs}
134       ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer_xerces/dist/manifest.txt.in
135       COMMENT "javac *.java; jar cvf -> opj_viewer_xerces.jar"
136       )
137
138     # name the target
139     add_custom_target(OPJViewerXercesJar ALL
140       DEPENDS ${LIBRARY_OUTPUT_PATH}/opj_viewer_xerces.jar
141       COMMENT "building opj_viewer_xerces.jar"
142       )
143
144     install(FILES ${LIBRARY_OUTPUT_PATH}/opj_viewer_xerces.jar
145       DESTINATION ${OPENJPEG_INSTALL_SHARE_DIR} COMPONENT JavaModule
146       )
147   endif()
148 else()
149   message(WARNING "No java compiler found. Wont be able to build java viewer")
150 endif()