|
1 |
| -cmake_minimum_required(VERSION 2.7) |
2 |
| -project(jssc |
3 |
| - # FIXME: add back if we can get the cmake min version > 3. |
4 |
| - # VERSION 2.7.1 |
5 |
| - # FIXME: Dropped Languages for cmake <3.0 for now. |
6 |
| - #LANGUAGES CXX |
7 |
| - ) |
8 |
| - |
9 |
| -# not supported in early cmake versions. |
10 |
| -# DESCRIPTION "Java Simple Serial Connector" |
| 1 | +cmake_minimum_required(VERSION 3.0) |
| 2 | +cmake_policy(SET CMP0048 NEW) |
| 3 | +cmake_policy(SET CMP0042 NEW) |
| 4 | +project(jssc VERSION 2.7.1 LANGUAGES CXX) |
11 | 5 |
|
12 | 6 | find_package(Java)
|
13 | 7 | find_package(JNI)
|
@@ -70,17 +64,31 @@ list(APPEND JSSC_ADDITIONAL_INCLUDES target/nar/javah-include/)
|
70 | 64 |
|
71 | 65 | # output to maven conventions to target/generated-sources/<generator>
|
72 | 66 | # The other part will be in conventions to native-lib-loader.
|
73 |
| -# FIXME: get platorm name from maven(?) or by using if/else/endif |
74 |
| -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ../classes/META-INF/lib/linux_64) |
| 67 | + |
| 68 | +# linux, macos, etc |
| 69 | +string(TOLOWER "${CMAKE_SYSTEM_NAME}" OS_NAME) |
| 70 | +if(APPLE) |
| 71 | + # scijava expects "osx", not "darwin" |
| 72 | + set(OS_NAME "osx") |
| 73 | +endif() |
| 74 | + |
| 75 | +# 32-bit or 64-bit |
| 76 | +if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") |
| 77 | + set(OS_BITS 64) |
| 78 | +else() |
| 79 | + set(OS_BITS 32) |
| 80 | +endif() |
| 81 | + |
| 82 | +# library (e.g. linux_64.so) TODO: Handle arm, hardfloat, etc |
| 83 | +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ../classes/META-INF/lib/${OS_NAME}_${OS_BITS}) |
75 | 84 |
|
76 | 85 | add_library(jssc SHARED
|
77 | 86 | src/cpp/${JSSC_PLATFORM}/jssc.cpp
|
78 | 87 | )
|
79 | 88 |
|
80 | 89 | target_include_directories(jssc PRIVATE ${JNI_INCLUDE_DIRS} ${JSSC_ADDITIONAL_INCLUDES})
|
81 | 90 |
|
82 |
| -# FIXME: add back if we can get the cmake min version > 3. |
83 |
| -# set_target_properties(jssc PROPERTIES VERSION ${PROJECT_VERSION}) |
| 91 | +set_target_properties(jssc PROPERTIES VERSION ${PROJECT_VERSION}) |
84 | 92 | set_target_properties(jssc PROPERTIES PUBLIC_HEADER target/nar/javah-include/jssc_SerialNativeInterface.h)
|
85 | 93 | set_target_properties(jssc PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
86 | 94 |
|
|
0 commit comments