|
1 |
| -find_package(JNI REQUIRED) |
2 |
| -include_directories(${JNI_INCLUDE_DIRS}) |
3 |
| - |
4 | 1 | include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
5 | 2 |
|
6 |
| -## mvn process for java code |
7 |
| -find_program(MVN_EXECUTABLE NAMES mvn) |
8 |
| -if(NOT MVN_EXECUTABLE) |
9 |
| - message(FATAL_ERROR "mvn not found. Install Apache Maven.") |
10 |
| -endif() |
11 |
| -file(GLOB_RECURSE JAVA_POM RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} java/**/pom.xml) |
12 |
| -file(GLOB_RECURSE JAVA_FTL RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} java/calcite/src/main/codegen/includes/*.ftl) |
13 |
| -file(GLOB_RECURSE JAVA_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} java/**/*.java) |
14 |
| -list(FILTER JAVA_SOURCES EXCLUDE REGEX ".*/gen/.*") |
15 |
| -list(FILTER JAVA_SOURCES EXCLUDE REGEX ".*/generated-sources/.*") |
| 3 | +if(ENABLE_SQL) |
| 4 | + find_package(JNI REQUIRED) |
| 5 | + include_directories(${JNI_INCLUDE_DIRS}) |
16 | 6 |
|
17 |
| -set(OMNISCI_JAR_RELEASE_VERSION "${MAPD_VERSION_MAJOR}.${MAPD_VERSION_MINOR}.${MAPD_VERSION_PATCH}") |
18 |
| -if("${MAPD_VERSION_EXTRA}" STREQUAL "dev") |
19 |
| - set (OMNISCI_JAR_RELEASE_VERSION "${OMNISCI_JAR_RELEASE_VERSION}-SNAPSHOT") |
20 |
| -endif() |
| 7 | + # # mvn process for java code |
| 8 | + find_program(MVN_EXECUTABLE NAMES mvn) |
21 | 9 |
|
22 |
| -if (WIN32) |
23 |
| - # "call" is needed on windows because "mvn" command is a batch script and without |
24 |
| - # "call" execution is transferred to it and is never returned back to this script. |
25 |
| - set(MVN_PATH_COMMAND call) |
| 10 | + if(NOT MVN_EXECUTABLE) |
| 11 | + message(FATAL_ERROR "mvn not found. Install Apache Maven.") |
| 12 | + endif() |
26 | 13 |
|
27 |
| - file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/bin" WIN_BIN_PATH) |
28 |
| - # The following call to cmd is required to ignore errors if directory already exitst |
29 |
| - set(MKDIR_COMMAND cmd /c "mkdir ${WIN_BIN_PATH} || (exit 0)") |
30 |
| -else() |
31 |
| - set(MVN_PATH_COMMAND "MVNPATH=${CMAKE_CURRENT_SOURCE_DIR}/java") |
32 |
| - set(MKDIR_COMMAND mkdir -p ${CMAKE_BINARY_DIR}/bin) |
33 |
| -endif() |
| 14 | + file(GLOB_RECURSE JAVA_POM RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} java/**/pom.xml) |
| 15 | + file(GLOB_RECURSE JAVA_FTL RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} java/calcite/src/main/codegen/includes/*.ftl) |
| 16 | + file(GLOB_RECURSE JAVA_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} java/**/*.java) |
| 17 | + list(FILTER JAVA_SOURCES EXCLUDE REGEX ".*/gen/.*") |
| 18 | + list(FILTER JAVA_SOURCES EXCLUDE REGEX ".*/generated-sources/.*") |
| 19 | + |
| 20 | + set(OMNISCI_JAR_RELEASE_VERSION "${MAPD_VERSION_MAJOR}.${MAPD_VERSION_MINOR}.${MAPD_VERSION_PATCH}") |
| 21 | + |
| 22 | + if("${MAPD_VERSION_EXTRA}" STREQUAL "dev") |
| 23 | + set(OMNISCI_JAR_RELEASE_VERSION "${OMNISCI_JAR_RELEASE_VERSION}-SNAPSHOT") |
| 24 | + endif() |
34 | 25 |
|
35 |
| -add_custom_command( |
36 |
| - OUTPUT |
| 26 | + if(WIN32) |
| 27 | + # "call" is needed on windows because "mvn" command is a batch script and without |
| 28 | + # "call" execution is transferred to it and is never returned back to this script. |
| 29 | + set(MVN_PATH_COMMAND call) |
| 30 | + |
| 31 | + file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/bin" WIN_BIN_PATH) |
| 32 | + |
| 33 | + # The following call to cmd is required to ignore errors if directory already exitst |
| 34 | + set(MKDIR_COMMAND cmd /c "mkdir ${WIN_BIN_PATH} || (exit 0)") |
| 35 | + else() |
| 36 | + set(MVN_PATH_COMMAND "MVNPATH=${CMAKE_CURRENT_SOURCE_DIR}/java") |
| 37 | + set(MKDIR_COMMAND mkdir -p ${CMAKE_BINARY_DIR}/bin) |
| 38 | + endif() |
| 39 | + |
| 40 | + add_custom_command( |
| 41 | + OUTPUT |
37 | 42 | ${CMAKE_BINARY_DIR}/bin/calcite-1.0-SNAPSHOT-jar-with-dependencies.jar
|
38 | 43 | COMMAND ${MVN_PATH_COMMAND} ${MVN_EXECUTABLE} -l ${CMAKE_BINARY_DIR}/mvn_build.log -e clean install -Dmaven.compiler.showDeprecation=true -Dmaven.compiler.showWarnings=true -Domnisci.release.version="${OMNISCI_JAR_RELEASE_VERSION}" -Djava.net.preferIPv4Stack=true -Dmaven.wagon.http.retryHandler.count=3 -DMAPD_LOG_DIR="${CMAKE_BINARY_DIR}"
|
39 | 44 | COMMAND ${MKDIR_COMMAND}
|
40 | 45 | COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/java/calcite/target/calcite-1.0-SNAPSHOT-jar-with-dependencies.jar ${CMAKE_BINARY_DIR}/bin
|
41 | 46 | WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/java
|
42 |
| - DEPENDS |
| 47 | + DEPENDS |
43 | 48 | ${CMAKE_CURRENT_SOURCE_DIR}/java/calcite/src/main/codegen/config.fmpp
|
44 | 49 | ${CMAKE_CURRENT_SOURCE_DIR}/java/pom.xml
|
45 | 50 | ${JAVA_POM}
|
46 | 51 | ${JAVA_SOURCES}
|
47 | 52 | ${JAVA_FTL}
|
48 | 53 | )
|
49 |
| -add_custom_target(calcite_java_lib ALL DEPENDS |
50 |
| - ${CMAKE_BINARY_DIR}/bin/calcite-1.0-SNAPSHOT-jar-with-dependencies.jar) |
51 |
| -add_custom_target(calcite_java_clean |
52 |
| - COMMAND ${MVN_PATH_COMMAND} ${MVN_EXECUTABLE} -q clean -Domnisci.release.version="${OMNISCI_JAR_RELEASE_VERSION}" |
53 |
| - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/java |
| 54 | + add_custom_target(calcite_java_lib ALL DEPENDS |
| 55 | + ${CMAKE_BINARY_DIR}/bin/calcite-1.0-SNAPSHOT-jar-with-dependencies.jar) |
| 56 | + add_custom_target(calcite_java_clean |
| 57 | + COMMAND ${MVN_PATH_COMMAND} ${MVN_EXECUTABLE} -q clean -Domnisci.release.version="${OMNISCI_JAR_RELEASE_VERSION}" |
| 58 | + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/java |
54 | 59 | )
|
55 | 60 |
|
56 |
| -add_custom_target(maven_populate_cache |
57 |
| - COMMAND ${MVN_PATH_COMMAND} ${MVN_EXECUTABLE} -q verify -Domnisci.release.version="${OMNISCI_JAR_RELEASE_VERSION}" |
58 |
| - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/java |
| 61 | + add_custom_target(maven_populate_cache |
| 62 | + COMMAND ${MVN_PATH_COMMAND} ${MVN_EXECUTABLE} -q verify -Domnisci.release.version="${OMNISCI_JAR_RELEASE_VERSION}" |
| 63 | + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/java |
59 | 64 | )
|
60 | 65 |
|
61 |
| -add_library(Calcite CalciteAdapter.cpp CalciteJNI.cpp SchemaJson.cpp) |
| 66 | + add_library(Calcite CalciteAdapter.cpp CalciteJNI.cpp SchemaJson.cpp) |
62 | 67 |
|
63 |
| -add_dependencies(Calcite calcite_java_lib) |
| 68 | + add_dependencies(Calcite calcite_java_lib) |
64 | 69 |
|
65 |
| -target_link_libraries(Calcite PRIVATE IR OSDependent Shared ${JAVA_JVM_LIBRARY}) |
| 70 | + target_link_libraries(Calcite PRIVATE IR OSDependent Shared ${JAVA_JVM_LIBRARY}) |
66 | 71 |
|
67 |
| -install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/java/calcite/target/calcite-1.0-SNAPSHOT-jar-with-dependencies.jar DESTINATION bin COMPONENT "jar") |
| 72 | + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/java/calcite/target/calcite-1.0-SNAPSHOT-jar-with-dependencies.jar DESTINATION bin COMPONENT "jar") |
| 73 | +else() |
| 74 | + add_library(Calcite CalciteStub.cpp SchemaJson.cpp) |
| 75 | + target_link_libraries(Calcite PRIVATE IR OSDependent Shared) |
| 76 | +endif() |
0 commit comments