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