root / CMakeLists.txt @ master
History | View | Annotate | Download (5 kB)
| 1 | c56f620b | Jos van den Oever | # WebODF is mostly a JavaScript project. CMake needs to know about the C++ parts |
|---|---|---|---|
| 2 | c56f620b | Jos van den Oever | project (WebODF C CXX) |
| 3 | c56f620b | Jos van den Oever | # version 2.8.2 is needed to have support for zip files in external projects |
| 4 | c56f620b | Jos van den Oever | cmake_minimum_required(VERSION 2.8.2) |
| 5 | c56f620b | Jos van den Oever | |
| 6 | c56f620b | Jos van den Oever | # At this point, the version number that is used throughout is defined |
| 7 | c56f620b | Jos van den Oever | set(WEBODF_VERSION 0.3.0) |
| 8 | c56f620b | Jos van den Oever | |
| 9 | c56f620b | Jos van den Oever | # This makefile 'compiles' WebODF using various tools, instruments the code and |
| 10 | c56f620b | Jos van den Oever | # builds and packages programs that use WebODF. |
| 11 | c56f620b | Jos van den Oever | |
| 12 | c56f620b | Jos van den Oever | # Find installed dependencies |
| 13 | c56f620b | Jos van den Oever | find_package(Qt4 4.7.0 COMPONENTS QtCore QtGui QtXml QtNetwork QtWebKit) |
| 14 | c56f620b | Jos van den Oever | if (NOT QT4_FOUND) |
| 15 | c56f620b | Jos van den Oever | message(WARNING "Qt4 with modules QtCore QtGui QtXml QtNetwork QtWebKit was not found. qtjsruntime will no be built.") |
| 16 | c56f620b | Jos van den Oever | endif (NOT QT4_FOUND) |
| 17 | c56f620b | Jos van den Oever | |
| 18 | c56f620b | Jos van den Oever | # java runtime is needed for Closure Compiler |
| 19 | c56f620b | Jos van den Oever | find_package(Java COMPONENTS Runtime) |
| 20 | c56f620b | Jos van den Oever | |
| 21 | c56f620b | Jos van den Oever | if (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) |
| 22 | c56f620b | Jos van den Oever | message(FATAL_ERROR "Compiling in the source directortory is not supported. Use for example 'mkdir build; cd build; cmake ..'.") |
| 23 | c56f620b | Jos van den Oever | endif (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) |
| 24 | c56f620b | Jos van den Oever | |
| 25 | c56f620b | Jos van den Oever | # Tools must be obtained to work with: |
| 26 | c56f620b | Jos van den Oever | include (ExternalProject) |
| 27 | c56f620b | Jos van den Oever | |
| 28 | c56f620b | Jos van den Oever | if(Java_JAVA_EXECUTABLE) |
| 29 | c56f620b | Jos van den Oever | # Closure Compiler |
| 30 | c56f620b | Jos van den Oever | ExternalProject_Add( |
| 31 | c56f620b | Jos van den Oever | ClosureCompiler |
| 32 | 2a298209 | Jos van den Oever | URL "http://closure-compiler.googlecode.com/files/compiler-20120430.zip" |
| 33 | 2a298209 | Jos van den Oever | URL_MD5 352d51842e7fae5e8d190475da5086f3 |
| 34 | c56f620b | Jos van den Oever | CONFIGURE_COMMAND "" |
| 35 | c56f620b | Jos van den Oever | BUILD_COMMAND "" |
| 36 | c56f620b | Jos van den Oever | INSTALL_COMMAND "" |
| 37 | c56f620b | Jos van den Oever | ) |
| 38 | 1b10fce4 | Jos van den Oever | set(CLOSURE_JAR ${CMAKE_CURRENT_BINARY_DIR}/ClosureCompiler-prefix/src/ClosureCompiler/compiler.jar)
|
| 39 | c56f620b | Jos van den Oever | endif(Java_JAVA_EXECUTABLE) |
| 40 | c56f620b | Jos van den Oever | |
| 41 | c56f620b | Jos van den Oever | # Rhino |
| 42 | c56f620b | Jos van den Oever | if(Java_JAVA_EXECUTABLE) |
| 43 | c56f620b | Jos van den Oever | ExternalProject_Add( |
| 44 | c56f620b | Jos van den Oever | Rhino |
| 45 | d01ba1d2 | Jos van den Oever | URL "http://ftp.mozilla.org/pub/js/rhino1_7R3.zip" |
| 46 | c56f620b | Jos van den Oever | URL_MD5 99d94103662a8d0b571e247a77432ac5 |
| 47 | c56f620b | Jos van den Oever | CONFIGURE_COMMAND "" |
| 48 | c56f620b | Jos van den Oever | BUILD_COMMAND "" |
| 49 | c56f620b | Jos van den Oever | INSTALL_COMMAND "" |
| 50 | c56f620b | Jos van den Oever | ) |
| 51 | 1b10fce4 | Jos van den Oever | set(RHINO ${CMAKE_CURRENT_BINARY_DIR}/Rhino-prefix/src/Rhino/js.jar)
|
| 52 | c56f620b | Jos van den Oever | endif(Java_JAVA_EXECUTABLE) |
| 53 | c56f620b | Jos van den Oever | |
| 54 | c56f620b | Jos van den Oever | # JSDoc |
| 55 | c56f620b | Jos van den Oever | ExternalProject_Add( |
| 56 | c56f620b | Jos van den Oever | JsDoc |
| 57 | c56f620b | Jos van den Oever | URL "http://jsdoc-toolkit.googlecode.com/files/jsdoc_toolkit-2.4.0.zip" |
| 58 | c56f620b | Jos van den Oever | URL_MD5 a8f78f5ecd24b54501147b2af341a231 |
| 59 | c56f620b | Jos van den Oever | CONFIGURE_COMMAND "" |
| 60 | c56f620b | Jos van den Oever | BUILD_COMMAND "" |
| 61 | c56f620b | Jos van den Oever | INSTALL_COMMAND "" |
| 62 | c56f620b | Jos van den Oever | ) |
| 63 | 1b10fce4 | Jos van den Oever | set(JSDOCDIR ${CMAKE_CURRENT_BINARY_DIR}/JsDoc-prefix/src/JsDoc/jsdoc-toolkit)
|
| 64 | c56f620b | Jos van den Oever | |
| 65 | c56f620b | Jos van den Oever | # Node.JS |
| 66 | c56f620b | Jos van den Oever | ExternalProject_Add( |
| 67 | c56f620b | Jos van den Oever | NodeJS |
| 68 | 8248b50a | Jos van den Oever | URL "http://nodejs.org/dist/v0.6.15/node-v0.6.15.tar.gz" |
| 69 | 8248b50a | Jos van den Oever | URL_MD5 852cfb1ed8125a4cdba456446d869d19 |
| 70 | c56f620b | Jos van den Oever | CONFIGURE_COMMAND "./configure" |
| 71 | c56f620b | Jos van den Oever | BUILD_IN_SOURCE 1 |
| 72 | c56f620b | Jos van den Oever | INSTALL_COMMAND "" |
| 73 | c56f620b | Jos van den Oever | ) |
| 74 | 1b10fce4 | Jos van den Oever | set(NODE ${CMAKE_CURRENT_BINARY_DIR}/NodeJS-prefix/src/NodeJS/out/Release/node)
|
| 75 | c56f620b | Jos van den Oever | |
| 76 | c56f620b | Jos van den Oever | # JSCoverage |
| 77 | c56f620b | Jos van den Oever | ExternalProject_Add( |
| 78 | c56f620b | Jos van den Oever | JSCoverage |
| 79 | c56f620b | Jos van den Oever | URL "http://siliconforks.com/jscoverage/download/jscoverage-0.5.1.tar.bz2" |
| 80 | c56f620b | Jos van den Oever | URL_MD5 a70d79a6759367fbcc0bcc18d6866ff3 |
| 81 | c56f620b | Jos van den Oever | PATCH_COMMAND patch -p0 < ${CMAKE_CURRENT_SOURCE_DIR}/JSCoverage.patch
|
| 82 | c56f620b | Jos van den Oever | CONFIGURE_COMMAND "./configure" |
| 83 | c56f620b | Jos van den Oever | BUILD_IN_SOURCE 1 |
| 84 | c56f620b | Jos van den Oever | INSTALL_COMMAND "" |
| 85 | c56f620b | Jos van den Oever | ) |
| 86 | 1b10fce4 | Jos van den Oever | set(JSCOVERAGE ${CMAKE_CURRENT_BINARY_DIR}/JSCoverage-prefix/src/JSCoverage/jscoverage)
|
| 87 | c56f620b | Jos van den Oever | |
| 88 | c56f620b | Jos van den Oever | # Android |
| 89 | c56f620b | Jos van den Oever | if (NOT ANDROID_SDK_DIR) |
| 90 | c56f620b | Jos van den Oever | find_path(ANDROID_SDK_DIR platform-tools/aapt) |
| 91 | c56f620b | Jos van den Oever | endif(NOT ANDROID_SDK_DIR) |
| 92 | c56f620b | Jos van den Oever | if (NOT ANT) |
| 93 | c56f620b | Jos van den Oever | find_file(ANT NAMES ant ant.exe /usr/bin /usr/local/bin) |
| 94 | c56f620b | Jos van den Oever | endif(NOT ANT) |
| 95 | c56f620b | Jos van den Oever | |
| 96 | c56f620b | Jos van den Oever | |
| 97 | c56f620b | Jos van den Oever | |
| 98 | c56f620b | Jos van den Oever | set(LIBJSFILES lib/packages.js lib/runtime.js lib/core/Base64.js |
| 99 | c56f620b | Jos van den Oever | lib/core/RawDeflate.js lib/core/ByteArray.js |
| 100 | c56f620b | Jos van den Oever | lib/core/ByteArrayWriter.js lib/core/RawInflate.js |
| 101 | c56f620b | Jos van den Oever | lib/core/Cursor.js lib/core/UnitTester.js |
| 102 | c56f620b | Jos van den Oever | lib/core/PointWalker.js lib/core/Async.js |
| 103 | c56f620b | Jos van den Oever | lib/core/Zip.js |
| 104 | c56f620b | Jos van den Oever | |
| 105 | c56f620b | Jos van den Oever | lib/xmldom/LSSerializerFilter.js lib/xmldom/LSSerializer.js |
| 106 | c56f620b | Jos van den Oever | lib/xmldom/RelaxNGParser.js lib/xmldom/RelaxNG.js |
| 107 | c56f620b | Jos van den Oever | lib/xmldom/RelaxNG2.js lib/xmldom/OperationalTransformInterface.js |
| 108 | c56f620b | Jos van den Oever | lib/xmldom/OperationalTransformDOM.js |
| 109 | c56f620b | Jos van den Oever | lib/xmldom/XPath.js |
| 110 | c56f620b | Jos van den Oever | |
| 111 | c56f620b | Jos van den Oever | lib/odf/StyleInfo.js lib/odf/Style2CSS.js |
| 112 | c56f620b | Jos van den Oever | lib/odf/FontLoader.js lib/odf/OdfContainer.js |
| 113 | c56f620b | Jos van den Oever | lib/odf/Formatting.js lib/odf/OdfCanvas.js |
| 114 | c56f620b | Jos van den Oever | |
| 115 | c56f620b | Jos van den Oever | lib/gui/PresenterUI.js lib/gui/Caret.js |
| 116 | c56f620b | Jos van den Oever | lib/gui/SelectionMover.js lib/gui/XMLEdit.js |
| 117 | c56f620b | Jos van den Oever | |
| 118 | c56f620b | Jos van den Oever | lib/manifest.js |
| 119 | c56f620b | Jos van den Oever | ) |
| 120 | c56f620b | Jos van den Oever | |
| 121 | c56f620b | Jos van den Oever | set(HTML5UIFILES |
| 122 | c56f620b | Jos van den Oever | app/app.js app/controller/Files.js app/model/FileSystem.js |
| 123 | c56f620b | Jos van den Oever | app/views/FileDetail.js app/views/FilesList.js app/views/OdfView.js |
| 124 | c56f620b | Jos van den Oever | app/views/Viewport.js sencha-touch.css sencha-touch.js |
| 125 | c56f620b | Jos van den Oever | app/store/FileStore.js |
| 126 | e583282f | Jos van den Oever | ZoomOut.png ZoomIn.png go-previous.png go-next.png |
| 127 | a184280f | Jos van den Oever | zoom-fit-width.png zoom-fit-best.png zoom-fit-height.png |
| 128 | c56f620b | Jos van den Oever | ) |
| 129 | c56f620b | Jos van den Oever | |
| 130 | c56f620b | Jos van den Oever | add_subdirectory(webodf) |
| 131 | c56f620b | Jos van den Oever | add_subdirectory(programs) |
| 132 | c56f620b | Jos van den Oever | |
| 133 | c56f620b | Jos van den Oever | # package webodf |
| 134 | c56f620b | Jos van den Oever | set(WEBODFZIP webodf-${WEBODF_VERSION}.zip)
|
| 135 | c56f620b | Jos van den Oever | set(WEBODFZIP_FILES |
| 136 | 1b10fce4 | Jos van den Oever | ${CMAKE_CURRENT_BINARY_DIR}/webodf/webodf-debug.js
|
| 137 | 1b10fce4 | Jos van den Oever | ${CMAKE_CURRENT_BINARY_DIR}/webodf/webodf.js
|
| 138 | 1b10fce4 | Jos van den Oever | ${CMAKE_CURRENT_SOURCE_DIR}/webodf/webodf.css
|
| 139 | c56f620b | Jos van den Oever | ) |
| 140 | c56f620b | Jos van den Oever | add_custom_command( |
| 141 | c56f620b | Jos van den Oever | OUTPUT ${WEBODFZIP}
|
| 142 | c56f620b | Jos van den Oever | # zip using javascript code running in node.js |
| 143 | c56f620b | Jos van den Oever | COMMAND ${NODE} ARGS webodf/lib/runtime.js packwebodf.js
|
| 144 | 1b10fce4 | Jos van den Oever | ${CMAKE_CURRENT_BINARY_DIR}/${WEBODFZIP}
|
| 145 | c56f620b | Jos van den Oever | #input files |
| 146 | c56f620b | Jos van den Oever | ${WEBODFZIP_FILES}
|
| 147 | c56f620b | Jos van den Oever | #output files |
| 148 | c56f620b | Jos van den Oever | webodf-debug.js |
| 149 | c56f620b | Jos van den Oever | webodf.js |
| 150 | c56f620b | Jos van den Oever | webodf.css |
| 151 | c56f620b | Jos van den Oever | DEPENDS NodeJS |
| 152 | c56f620b | Jos van den Oever | packwebodf.js |
| 153 | c56f620b | Jos van den Oever | ${WEBODFZIP_FILES}
|
| 154 | c56f620b | Jos van den Oever | webodf-debug.js |
| 155 | c56f620b | Jos van den Oever | webodf.js |
| 156 | 1b10fce4 | Jos van den Oever | WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
| 157 | c56f620b | Jos van den Oever | ) |
| 158 | c56f620b | Jos van den Oever | add_custom_target(zip ALL DEPENDS ${WEBODFZIP})
|
| 159 | c56f620b | Jos van den Oever | |
| 160 | c56f620b | Jos van den Oever | # vim:expandtab |