~ubuntu-branches/ubuntu/utopic/sikuli/utopic

« back to all changes in this revision

Viewing changes to .pc/use-java-libs-from-debian.patch/sikuli-script/CMakeLists.txt

  • Committer: Bazaar Package Importer
  • Author(s): Gilles Filippini
  • Date: 2011-10-04 23:32:13 UTC
  • mfrom: (4.1.2 sid)
  • Revision ID: james.westby@ubuntu.com-20111004233213-36fm78hx0z53tkuw
Tags: 1.0~x~rc3-dfsg1-2
* New patch fix-cmake-sikuli-ide.patch:
  + Fix random FTBFS due to missing inter target dependency

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Copyright 2010-2011, Sikuli.org
 
2
# Released under the MIT License.
1
3
cmake_minimum_required(VERSION 2.6)
2
4
PROJECT (sikuli-script Java)
3
5
 
7
9
SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../cmake_modules/")
8
10
INCLUDE("${CMAKE_MODULE_PATH}/common.cmake")
9
11
 
10
 
FIND_PACKAGE(Java)
 
12
FIND_PACKAGE(Java 1.6 REQUIRED)
11
13
SET( NON_NATIVE_TARGET TRUE)
12
14
 
13
15
IF(UNIX)
27
29
SET(JAVA_SRC_DIR "${BASE_DIR}/src/main/java")
28
30
SET(NATIVE_SRC_DIR "${BASE_DIR}/src/main/native")
29
31
SET(PYTHON_SRC_DIR "${BASE_DIR}/src/main/python")
 
32
SET(JAVA_TEST_DIR "${BASE_DIR}/src/test/java")
 
33
SET(TEST_RESOURCE_DIR "test-res")
 
34
SET(JAVA_TEST_FOR_HUDSON_XML "../hudson-test.xml")
 
35
 
30
36
SET(CMAKE_SWIG_OUTDIR ${CMAKE_BINARY_DIR}/${NATIVE_PACKAGE_DIR})
31
37
 
32
38
SET(COMMON_LIB_DIR "${BASE_DIR}/../lib")
 
39
 
 
40
# dependent libs
 
41
SET(JXGRABKEY_JAR "${COMMON_LIB_DIR}/jxgrabkey/lib/JXGrabKey.jar")
 
42
SET(JINTELLITYPE_JAR "${COMMON_LIB_DIR}/jintellitype-1.3.6/jintellitype-1.3.6.jar")
 
43
 
33
44
#SET(INCLUDE_LIB_DIR "${BASE_DIR}/lib")
34
45
SET(INCLUDE_LIB_DIR "${COMMON_LIB_DIR}/mx-native-loader-1.2/target/classes")
 
46
 
35
47
SET(BINARY_DIR "${BASE_DIR}/target")
36
 
SET(BINARY_CLASS_DIR "${BINARY_DIR}/classes")
 
48
SET(BINARY_CLASS_DIR "${CMAKE_BINARY_DIR}/classes")
 
49
SET(TEST_CLASS_DIR "${CMAKE_BINARY_DIR}/test")
37
50
SET(BINARY_LIB_DIR "${BINARY_DIR}/lib")
38
 
SET(JAR_DIR "${BINARY_DIR}/jar")
 
51
SET(JAR_DIR "${CMAKE_BINARY_DIR}/jar")
 
52
SET(JAR_LIB_DIR  ${JAR_DIR}/META-INF/lib)
39
53
 
40
 
SET(JYTHON_JAR "${COMMON_LIB_DIR}/jython-2.5.1.jar")
41
 
SET(JYTHON_LIB_FILE "${COMMON_LIB_DIR}/jython-lib-2.5.1.tgz")
 
54
SET(JUNIT_JAR "${COMMON_LIB_DIR}/junit-4.8.2.jar")
 
55
SET(MOCKITO_JAR "${COMMON_LIB_DIR}/mockito-all-1.8.5.jar")
 
56
SET(JYTHON_JAR "${COMMON_LIB_DIR}/jython-2.5.2.jar")
 
57
SET(JYTHON_LIB_FILE "${COMMON_LIB_DIR}/jython-lib-2.5.2.tgz")
42
58
 
43
59
SET(CLASSPATH 
44
60
   ${INCLUDE_LIB_DIR}${SEP}${JYTHON_JAR}${SEP}.
45
61
)
46
62
 
 
63
IF(LINUX)
 
64
   SET(CLASSPATH ${CLASSPATH}${SEP}${JXGRABKEY_JAR})
 
65
ELSEIF(WIN32)
 
66
   SET(CLASSPATH ${CLASSPATH}${SEP}${JINTELLITYPE_JAR})
 
67
ENDIF()
 
68
 
 
69
 
 
70
SET(TEST_CLASSPATH
 
71
   ${CLASSPATH}${SEP}${JUNIT_JAR}${SEP}${BINARY_CLASS_DIR}${SEP}${MOCKITO_JAR}
 
72
)
 
73
 
47
74
FILE(MAKE_DIRECTORY ${BINARY_DIR})
48
75
FILE(MAKE_DIRECTORY ${BINARY_CLASS_DIR})
 
76
FILE(MAKE_DIRECTORY ${TEST_CLASS_DIR})
49
77
FILE(MAKE_DIRECTORY ${JAR_DIR})
50
78
 
51
79
SET(JAR_FILE sikuli-script.jar)
69
97
   )
70
98
ENDIF()
71
99
 
 
100
 
72
101
SET(LIB_IN_JAR_DIR "${JAR_DIR}/Lib")
73
102
add_custom_target( ${JAR_FILE}.python-src-in-jar
74
103
   COMMAND ${CMAKE_COMMAND} -E make_directory ${LIB_IN_JAR_DIR}
98
127
ENDIF()
99
128
 
100
129
add_custom_target(doc
101
 
   javadoc -windowtitle "Javadoc of Sikuli Script" -sourcepath ${JAVA_SRC_DIR}
 
130
   javadoc -public -docencoding utf-8 -windowtitle "Javadoc of Sikuli Script" -sourcepath ${JAVA_SRC_DIR}
102
131
    -d ${DOC_DIR} -classpath ${CLASSPATH}  ${PACKAGE}
103
132
)
104
133
 
118
147
      COMMENT "Update version number to ${VERSION}"
119
148
)
120
149
 
 
150
add_custom_target(${JAR_FILE}.libs-in-jar
 
151
   COMMAND ${CMAKE_COMMAND} -E make_directory ${JAR_DIR}/META-INF
 
152
   COMMAND ${CMAKE_COMMAND} -E copy_directory ${BINARY_LIB_DIR} ${JAR_LIB_DIR}
 
153
   COMMENT "Build native libs"
 
154
)
 
155
 
 
156
 
121
157
# Dependencies
122
158
 
123
159
add_dependencies(${JAR_FILE} 
130
166
        ${JAR_FILE}.jython-libs-in-jar
131
167
)
132
168
 
133
 
 
 
169
IF(WIN32)
 
170
   IF(NOT EXISTS ${JAR_DIR}/com/melloware/jintellitype)
 
171
      add_custom_target( ${JAR_FILE}.jintellitype-in-jar
 
172
         COMMAND ${CMAKE_COMMAND} -E chdir ${JAR_DIR} ${JAVA_ARCHIVE} xf ${JINTELLITYPE_JAR}
 
173
         COMMENT "Merging Jintellitype's JAR"
 
174
      )
 
175
      add_dependencies(${JAR_FILE} 
 
176
         ${JAR_FILE}.jintellitype-in-jar
 
177
      )
 
178
 
 
179
      SET(LIB_GRABKEY "${COMMON_LIB_DIR}/jintellitype-1.3.6/JIntellitype.dll")
 
180
      SET(LIB_GRABKEY64 "${COMMON_LIB_DIR}/jintellitype-1.3.6/JIntellitype64.dll")
 
181
      add_custom_target( ${JAR_FILE}.hotkey-lib 
 
182
         COMMAND ${CMAKE_COMMAND} -E copy ${LIB_GRABKEY} ${JAR_DIR}/com/melloware/jintellitype/
 
183
         COMMAND ${CMAKE_COMMAND} -E copy ${LIB_GRABKEY64} ${JAR_DIR}/com/melloware/jintellitype/
 
184
         COMMENT "Packaging JIntellitype in Jar"
 
185
      )
 
186
      add_dependencies( ${JAR_FILE}.hotkey-lib
 
187
         ${JAR_FILE}.jintellitype-in-jar 
 
188
      )
 
189
   ENDIF(NOT EXISTS ${JAR_DIR}/com/melloware/jintellitype)
 
190
 
 
191
ENDIF(WIN32)
 
192
 
 
193
IF(LINUX)
 
194
   IF(NOT EXISTS ${JAR_DIR}/jxgrabkey)
 
195
      add_custom_target( ${JAR_FILE}.jxgrabkey-in-jar
 
196
         COMMAND ${CMAKE_COMMAND} -E chdir ${JAR_DIR} ${JAVA_ARCHIVE} xf ${JXGRABKEY_JAR}
 
197
         COMMENT "Merging JXGrabKey's JAR"
 
198
      )
 
199
   ENDIF()
 
200
 
 
201
   add_dependencies(${JAR_FILE} 
 
202
      ${JAR_FILE}.jxgrabkey-in-jar
 
203
   )
 
204
ENDIF(LINUX)
 
205
 
 
206
IF(LINUX)
 
207
   EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE SYSTEM_ARCH)
 
208
   if(SYSTEM_ARCH MATCHES "x86_64")
 
209
      SET(LIB_GRABKEY "${COMMON_LIB_DIR}/jxgrabkey/lib/libJXGrabKey-64.so")
 
210
   else()
 
211
      SET(LIB_GRABKEY "${COMMON_LIB_DIR}/jxgrabkey/lib/libJXGrabKey-32.so")
 
212
   endif()
 
213
   add_custom_target( ${JAR_FILE}.hotkey-lib 
 
214
      COMMAND cp ${LIB_GRABKEY} ${BINARY_LIB_DIR}/libJXGrabKey.so
 
215
      COMMENT "Packaging JXGrabKey in Jar"
 
216
   )
 
217
ENDIF(LINUX)
 
218
add_dependencies( ${JAR_FILE} ${JAR_FILE}.hotkey-lib ) 
 
219
add_dependencies( ${JAR_FILE}.libs-in-jar ${JAR_FILE}.hotkey-lib ) 
 
220
 
 
221
 
 
222
ADD_SUBDIRECTORY(${JAVA_SRC_DIR})
134
223
ADD_SUBDIRECTORY(${NATIVE_SRC_DIR})
135
 
ADD_SUBDIRECTORY(${JAVA_SRC_DIR})
136
 
 
137
 
# Tests
138
 
 
139
 
SET(PYTHON_TESTS
140
 
   basic bundle capture click dragdrop env findAll 
141
 
   keys mouse multiscreen observe region 
142
 
   showActions sikuli type vdict wait with
143
 
   ocr imageurl wheel imagepath findfailed
144
 
)
 
224
ADD_SUBDIRECTORY(${JAVA_TEST_DIR})
 
225
 
 
226
# Java level tests
 
227
 
 
228
SET(MAIN_TEST_SUITE ${PACKAGE}.SikuliScriptTestSuite)
 
229
 
 
230
add_custom_target( test-res
 
231
   COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_DIR}/${TEST_RESOURCE_DIR}
 
232
   COMMAND ${CMAKE_COMMAND} -E copy_directory ${BASE_DIR}/${TEST_RESOURCE_DIR} ${CMAKE_BINARY_DIR}/${TEST_RESOURCE_DIR}
 
233
   COMMENT "Copy test resource"
 
234
)
 
235
 
 
236
SET(JAVA_TEST_CASE ""
 
237
   CACHE STRING
 
238
   "The java test case to run with run-java-test"
 
239
   )
 
240
 
 
241
add_custom_target( run-java-test
 
242
   COMMAND ant -f ${JAVA_TEST_FOR_HUDSON_XML} runtest -Dtest=${JAVA_TEST_CASE}
 
243
   COMMENT "Run specific Java unit tests"
 
244
)
 
245
 
 
246
add_dependencies( run-java-test
 
247
        ${JAR_FILE}
 
248
        ${PROJECT_NAME}.test.classes
 
249
        test-res
 
250
)
 
251
 
 
252
add_custom_target( java-test
 
253
   COMMAND ant -f ${JAVA_TEST_FOR_HUDSON_XML}
 
254
   COMMENT "Run Java unit tests"
 
255
)
 
256
 
 
257
add_dependencies( java-test
 
258
        ${JAR_FILE}
 
259
        ${PROJECT_NAME}.test.classes
 
260
        test-res
 
261
)
 
262
 
 
263
 
 
264
## Python level tests
145
265
 
146
266
SET(PY_TEST_DIR "${BASE_DIR}/src/test/python")
147
267
SET(JYTHON_CLASS org.python.util.jython)
148
 
 
149
 
FOREACH(TEST_TARGET ${PYTHON_TESTS})
150
 
   ADD_TEST(Jar_${TEST_TARGET} ${CMAKE_COMMAND} -E chdir ${BASE_DIR} 
151
 
                  java -Dsikuli.Debug=3 -cp ${BINARY_DIR}/${JAR_FILE} 
152
 
                  -Dpython.home=${BINARY_DIR}/${JAR_FILE} 
153
 
                  ${JYTHON_CLASS} ${PY_TEST_DIR}/test-${TEST_TARGET}.py
154
 
   )
155
 
ENDFOREACH(TEST_TARGET)
156
 
 
157
 
INCLUDE(CTest)
 
268
SET(JACOCOAGENT_JAR ${BASE_DIR}/../utils/jacoco/lib/jacocoagent.jar)
 
269
IF(WIN32)
 
270
   STRING(REPLACE "/" "\\" JACOCOAGENT_JAR "${JACOCOAGENT_JAR}")
 
271
ENDIF(WIN32)
 
272
SET(JACOCO_ARGS
 
273
   "-javaagent:${JACOCOAGENT_JAR}=destfile=jacoco.exec,includes=org.sikuli.*"
 
274
)
 
275
 
 
276
SET(NOSE_ARGS
 
277
   ""
 
278
   CACHE STRING 
 
279
   "The arguments for running Python nose tests")
 
280
 
 
281
add_custom_target( python-test
 
282
   COMMAND ${JAVA_RUNTIME} "${JACOCO_ARGS}"  -Dfile.encoding=UTF-8 -Dsikuli.testing=yes -cp "${BINARY_DIR}/${JAR_FILE}${SEP}${TEST_CLASS_DIR}" ${JYTHON_CLASS} ${PY_TEST_DIR}/RunNoseTests.py ${NOSE_ARGS}
 
283
   COMMENT "Run Python unit tests"
 
284
)
 
285
 
 
286
add_dependencies( python-test
 
287
   ${JAR_FILE}
 
288
   ${PROJECT_NAME}.test.classes
 
289
   test-res
 
290
)
 
291
 
 
292
 
 
293
# run all test cases
 
294
add_custom_target( all-test
 
295
)
 
296
 
 
297
add_dependencies( all-test
 
298
   java-test
 
299
   python-test
 
300
)