Mercurial > hg > orthanc-java
annotate Plugin/CMakeLists.txt @ 41:d0b0bb6dfb4a
typo
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 03 Jul 2024 18:00:06 +0200 |
parents | 4faec1378b89 |
children | 678bbed285a1 |
rev | line source |
---|---|
20 | 1 # SPDX-FileCopyrightText: 2023-2024 Sebastien Jodogne, UCLouvain, Belgium |
0 | 2 # SPDX-License-Identifier: GPL-3.0-or-later |
3 | |
4 # Java plugin for Orthanc | |
20 | 5 # Copyright (C) 2023-2024 Sebastien Jodogne, UCLouvain, Belgium |
0 | 6 # |
7 # This program is free software: you can redistribute it and/or | |
8 # modify it under the terms of the GNU General Public License as | |
9 # published by the Free Software Foundation, either version 3 of the | |
10 # License, or (at your option) any later version. | |
11 # | |
12 # This program is distributed in the hope that it will be useful, but | |
13 # WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
15 # General Public License for more details. | |
16 # | |
17 # You should have received a copy of the GNU General Public License | |
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
19 | |
20 | |
3
c9b4ff27ad5d
fix cmake_minimum_required()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2
diff
changeset
|
21 cmake_minimum_required(VERSION 3.1) |
0 | 22 |
23 project(OrthancJavaPlugin) | |
24 | |
35 | 25 set(PLUGIN_VERSION "mainline") |
0 | 26 |
2 | 27 set(CMAKE_CXX_STANDARD 11) |
28 | |
0 | 29 include(CheckIncludeFileCXX) |
30 include(FindPythonInterp) | |
31 | |
32 include(${CMAKE_SOURCE_DIR}/../Resources/Orthanc/CMake/AutoGeneratedCode.cmake) | |
33 include(${CMAKE_SOURCE_DIR}/../Resources/Orthanc/CMake/Compiler.cmake) | |
34 include(${CMAKE_SOURCE_DIR}/../Resources/Orthanc/CMake/DownloadPackage.cmake) | |
35 | |
36 include(${CMAKE_SOURCE_DIR}/../Resources/Orthanc/Plugins/OrthancPluginsExports.cmake) | |
37 | |
38 # Support of static compilation | |
39 set(ALLOW_DOWNLOADS OFF CACHE BOOL "Allow CMake to download packages") | |
40 set(STATIC_BUILD OFF CACHE BOOL "Static build of the third-party libraries (necessary for Windows)") | |
41 set(USE_SYSTEM_JSONCPP ON CACHE BOOL "Use the system version of JsonCpp") | |
42 set(USE_SYSTEM_JNI ON CACHE BOOL "Use the system version of JsonCpp") | |
43 set(USE_LEGACY_JSONCPP OFF CACHE BOOL "Use the old branch 0.x.y of JsonCpp, that does not require a C++11 compiler (for LSB and old versions of Visual Studio)") | |
44 | |
45 include(${CMAKE_SOURCE_DIR}/../Resources/Orthanc/CMake/JsonCppConfiguration.cmake) | |
46 | |
47 | |
48 include_directories(BEFORE | |
49 ${CMAKE_SOURCE_DIR}/../Resources/Orthanc/Sdk-1.10.0/ | |
50 ) | |
51 | |
52 if (CMAKE_SYSTEM_NAME STREQUAL "Windows" AND | |
53 (STATIC_BUILD OR NOT USE_SYSTEM_JNI)) | |
54 if (CMAKE_SIZEOF_VOID_P EQUAL 8) | |
55 include_directories( | |
56 ${CMAKE_SOURCE_DIR}/../Resources/jdk8u382-b05-win64/include | |
57 ${CMAKE_SOURCE_DIR}/../Resources/jdk8u382-b05-win64/include/win32 | |
58 ) | |
59 link_libraries( | |
60 ${CMAKE_SOURCE_DIR}/../Resources/jdk8u382-b05-win64/lib/jvm.lib | |
61 ) | |
62 elseif (CMAKE_SIZEOF_VOID_P EQUAL 4) | |
63 include_directories( | |
64 ${CMAKE_SOURCE_DIR}/../Resources/jdk8u382-b05-win32/include | |
65 ${CMAKE_SOURCE_DIR}/../Resources/jdk8u382-b05-win32/include/win32 | |
66 ) | |
67 link_libraries( | |
68 ${CMAKE_SOURCE_DIR}/../Resources/jdk8u382-b05-win32/lib/jvm.lib | |
69 ) | |
70 else() | |
71 message(FATAL_ERROR "Unknown architecture") | |
72 endif() | |
73 else() | |
74 if (NOT USE_SYSTEM_JNI) | |
75 message(FATAL_ERROR "Cannot statically link against JNI on this platform") | |
76 endif() | |
77 | |
78 include(FindJNI) | |
79 if (NOT JNI_FOUND) | |
80 message(FATAL_ERROR "Unable to find JNI") | |
81 endif() | |
82 | |
83 link_libraries(${JNI_LIBRARIES}) | |
84 include_directories(${JNI_INCLUDE_DIRS}) | |
85 endif() | |
86 | |
87 if (CMAKE_SYSTEM_NAME STREQUAL "Windows") | |
88 execute_process( | |
89 COMMAND | |
90 ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/../Resources/Orthanc/CMake/WindowsResources.py | |
91 ${PLUGIN_VERSION} OrthancJava OrthancJava.dll "Java plugin for Orthanc" | |
92 ERROR_VARIABLE Failure | |
93 OUTPUT_FILE ${AUTOGENERATED_DIR}/OrthancJava.rc | |
94 ) | |
95 | |
96 if (Failure) | |
97 message(FATAL_ERROR "Error while computing the version information: ${Failure}") | |
98 endif() | |
99 | |
100 list(APPEND PLUGIN_RESOURCES ${AUTOGENERATED_DIR}/OrthancJava.rc) | |
101 endif() | |
102 | |
103 | |
104 add_definitions( | |
105 -DPLUGIN_VERSION="${PLUGIN_VERSION}" | |
106 ) | |
107 | |
108 add_library(OrthancJava SHARED | |
109 ${JSONCPP_SOURCES} | |
110 ${PLUGIN_RESOURCES} | |
7 | 111 |
112 JavaBytes.cpp | |
5 | 113 JavaEnvironment.cpp |
7 | 114 JavaGlobalReference.cpp |
115 JavaLocalObject.cpp | |
116 JavaString.cpp | |
5 | 117 JavaVirtualMachine.cpp |
118 Mutex.cpp | |
8
26c08ff926a3
added warning about auto-generated files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
7
diff
changeset
|
119 NativeSDK.cpp |
7 | 120 OrthancBytes.cpp |
121 OrthancString.cpp | |
5 | 122 Plugin.cpp |
0 | 123 ) |
124 | |
125 set_target_properties( | |
126 OrthancJava PROPERTIES | |
127 VERSION ${PLUGIN_VERSION} | |
128 SOVERSION ${PLUGIN_VERSION} | |
129 SKIP_BUILD_RPATH ON | |
130 ) | |
131 | |
132 install( | |
133 TARGETS OrthancJava | |
134 RUNTIME DESTINATION lib # Destination for Windows | |
135 LIBRARY DESTINATION share/orthanc/plugins # Destination for Linux | |
136 ) |