mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
[build] Clean up CMake files (#6802)
Explicitly list required components when using FindJava and FindJNI Consolidate find_package calls for Java, JNI, and OpenCV into the root CMakeLists.txt file Remove references to main_lib_dest Install missing generated headers Flatten some if statements Use LinkMacOSGUI macro instead of hand rolling it Stop installing OpenCV libraries and an extra ntcorejni library; OpenCV JAR will still be installed to make it easy to use Only print platform version on Windows Prevent GUI modules from being built when wpimath is off, which would otherwise cause a build failure Simplify build configuration checks Clean up fieldImages JAR creation Place built JARs in the same subdir as installed JARs Remove unnecessary JAR includes Remove extra directories in target_include_directories Improve CMake docs
This commit is contained in:
103
CMakeLists.txt
103
CMakeLists.txt
@@ -12,6 +12,7 @@ endif()
|
||||
if("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows")
|
||||
set(CMAKE_SYSTEM_VERSION 10.0.18362.0 CACHE STRING INTERNAL FORCE)
|
||||
set(CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION 10.0.18362.0 CACHE STRING INTERNAL FORCE)
|
||||
message(STATUS "Platform version: ${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}")
|
||||
endif()
|
||||
|
||||
cmake_minimum_required(VERSION 3.11)
|
||||
@@ -23,11 +24,10 @@ if(POLICY CMP0135)
|
||||
cmake_policy(SET CMP0135 NEW)
|
||||
endif()
|
||||
|
||||
message(STATUS "Platform version: ${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}")
|
||||
|
||||
set(WPILIB_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
include(CPack)
|
||||
include(OptionValidation)
|
||||
|
||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
@@ -35,7 +35,6 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${WPILIB_BINARY_DIR}/lib)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${WPILIB_BINARY_DIR}/lib)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${WPILIB_BINARY_DIR}/bin)
|
||||
set(CMAKE_JAVA_TARGET_OUTPUT_DIR ${WPILIB_BINARY_DIR}/jar)
|
||||
|
||||
# use, i.e. don't skip the full RPATH for the build tree
|
||||
set(CMAKE_SKIP_BUILD_RPATH FALSE)
|
||||
@@ -87,28 +86,6 @@ if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "" FORCE)
|
||||
endif()
|
||||
|
||||
if(WITH_JAVA AND NOT BUILD_SHARED_LIBS)
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"
|
||||
FATAL: Cannot build static libs with Java enabled.
|
||||
Static libs requires both BUILD_SHARED_LIBS=OFF and
|
||||
WITH_JAVA=OFF
|
||||
"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WITH_SIMULATION_MODULES AND NOT BUILD_SHARED_LIBS)
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"
|
||||
FATAL: Cannot build static libs with simulation modules enabled.
|
||||
Static libs requires both BUILD_SHARED_LIBS=OFF and
|
||||
WITH_SIMULATION_MODULES=OFF
|
||||
"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(NOT WITH_JAVA OR NOT WITH_CSCORE)
|
||||
if(NOT "${OPENCV_JAVA_INSTALL_DIR}" STREQUAL "")
|
||||
message(
|
||||
@@ -121,81 +98,24 @@ It will be ignored.
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT WITH_WPILIB AND WITH_SIMULATION_MODULES)
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"
|
||||
FATAL: Cannot build simulation modules with wpilib disabled.
|
||||
Enable wpilib by setting WITH_WPILIB=ON
|
||||
"
|
||||
)
|
||||
endif()
|
||||
wpilib_config(OPTIONS WITH_JAVA REQUIRES BUILD_SHARED_LIBS)
|
||||
|
||||
if(NOT WITH_NTCORE AND WITH_CSCORE)
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"
|
||||
FATAL: Cannot build cameraserver without ntcore.
|
||||
Enable ntcore by setting WITH_NTCORE=ON
|
||||
"
|
||||
)
|
||||
endif()
|
||||
wpilib_config(OPTIONS WITH_SIMULATION_MODULES REQUIRES BUILD_SHARED_LIBS WITH_WPILIB WITH_NTCORE)
|
||||
|
||||
if(NOT WITH_NTCORE AND WITH_GUI)
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"
|
||||
FATAL: Cannot build GUI modules without ntcore.
|
||||
Enable ntcore by setting WITH_NTCORE=ON
|
||||
"
|
||||
)
|
||||
endif()
|
||||
wpilib_config(OPTIONS WITH_CSCORE REQUIRES WITH_NTCORE)
|
||||
|
||||
if(NOT WITH_NTCORE AND WITH_SIMULATION_MODULES)
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"
|
||||
FATAL: Cannot build simulation modules without ntcore.
|
||||
Enable ntcore by setting WITH_NTCORE=ON
|
||||
"
|
||||
)
|
||||
endif()
|
||||
wpilib_config(OPTIONS WITH_GUI REQUIRES WITH_NTCORE WITH_WPIMATH)
|
||||
|
||||
if(NOT WITH_NTCORE AND WITH_WPILIB)
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"
|
||||
FATAL: Cannot build wpilib without ntcore.
|
||||
Enable ntcore by setting WITH_NTCORE=ON
|
||||
"
|
||||
)
|
||||
endif()
|
||||
wpilib_config(OPTIONS WITH_WPILIB REQUIRES WITH_NTCORE WITH_WPIMATH)
|
||||
|
||||
if(NOT WITH_WPIMATH AND WITH_WPILIB)
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"
|
||||
FATAL: Cannot build wpilib without wpimath.
|
||||
Enable wpimath by setting WITH_WPIMATH=ON
|
||||
"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(NOT WITH_WPIUNITS AND WITH_WPIMATH AND WITH_JAVA)
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"
|
||||
FATAL: Cannot build Java wpimath without wpiunits.
|
||||
Enable wpiunits by setting WITH_WPIUNITS=ON or disable the Java build by setting WITH_JAVA=OFF
|
||||
"
|
||||
)
|
||||
endif()
|
||||
wpilib_config(OPTIONS WITH_WPIMATH WITH_JAVA REQUIRES WITH_WPIUNITS)
|
||||
|
||||
set(include_dest include)
|
||||
set(java_lib_dest java)
|
||||
set(jni_lib_dest jni)
|
||||
if(WITH_JAVA)
|
||||
if(WITH_JAVA OR WITH_JAVA_SOURCE)
|
||||
set(CMAKE_JAVA_COMPILE_FLAGS "-encoding" "UTF8" "-Xlint:unchecked")
|
||||
find_package(Java REQUIRED COMPONENTS Development)
|
||||
find_package(JNI REQUIRED COMPONENTS JVM)
|
||||
endif()
|
||||
|
||||
find_package(LIBSSH 0.7.1)
|
||||
@@ -382,6 +302,7 @@ endif()
|
||||
if(WITH_CSCORE)
|
||||
set(CAMERASERVER_DEP_REPLACE "find_dependency(cameraserver)")
|
||||
set(CSCORE_DEP_REPLACE "find_dependency(cscore)")
|
||||
find_package(OpenCV REQUIRED)
|
||||
add_subdirectory(cscore)
|
||||
add_subdirectory(cameraserver)
|
||||
endif()
|
||||
|
||||
@@ -108,6 +108,12 @@ After build, the easiest way to use the libraries is to install them. Run the fo
|
||||
sudo cmake --build . --target install
|
||||
```
|
||||
|
||||
## Preparing to use the installed libraries
|
||||
|
||||
On Windows, make sure the directories for the libraries you built are on PATH. For wpilib, the default install location is `C:\Program Files (x86)\allwpilib`. If you built other libraries like OpenCV and protobuf from source, install them, and add the install directories to PATH. This ensures CMake can locate the libraries.
|
||||
|
||||
You will also want to add the directories where the DLLs are located (usually the `bin` subdirectory of the install directory) to PATH so they can be loaded by your program. If you are using OpenCV and Java, the `opencv_java` DLL is located in either the `lib` subdirectory if you built but didn't install OpenCV, or the `java` subdirectory if you did install OpenCV.
|
||||
|
||||
## Using the installed libraries for C++.
|
||||
|
||||
Using the libraries from C++ is the easiest way to use the built libraries.
|
||||
@@ -134,12 +140,11 @@ cmake /path/to/folder/containing/CMakeLists
|
||||
|
||||
After that, run `cmake --build .`. That will create your executable. Then you should be able to run `./my_vision_app` to run your application.
|
||||
|
||||
|
||||
## Using the installed libraries for Java
|
||||
|
||||
Using the built JARs is move involved than using the C++ libraries, but mostly consists of adding the correct directories to PATH.
|
||||
Using the built JARs is more involved than using the C++ libraries, but the additional work involves providing the paths to various libraries and JARs when needed.
|
||||
|
||||
Add the directory where the JARs are located (e.g, `/usr/local/java`) to PATH. If you are on Windows, you also need to add the `lib`, `bin`, and `share` directories to PATH. Then, create a new folder to contain your project. Add the following code below to a `CMakeLists.txt` file in that directory.
|
||||
Create a new folder to contain your project. Add the following code below to a `CMakeLists.txt` file in that directory.
|
||||
|
||||
```cmake
|
||||
cmake_minimum_required(VERSION 3.11)
|
||||
|
||||
@@ -27,8 +27,6 @@ set(APRILTAGLIB_SRCS
|
||||
file(GLOB apriltag_jni_src src/main/native/cpp/jni/AprilTagJNI.cpp)
|
||||
|
||||
if(WITH_JAVA)
|
||||
find_package(Java REQUIRED)
|
||||
find_package(JNI REQUIRED)
|
||||
include(UseJava)
|
||||
|
||||
set(CMAKE_JNI_TARGET true)
|
||||
@@ -47,8 +45,6 @@ if(WITH_JAVA)
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
|
||||
set(CMAKE_JAVA_INCLUDE_PATH apriltag.jar ${EJML_JARS} ${JACKSON_JARS})
|
||||
|
||||
file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java)
|
||||
file(
|
||||
GLOB_RECURSE JAVA_RESOURCES
|
||||
@@ -60,8 +56,15 @@ if(WITH_JAVA)
|
||||
SOURCES ${JAVA_SOURCES}
|
||||
RESOURCES
|
||||
NAMESPACE "edu/wpi/first/apriltag" ${JAVA_RESOURCES}
|
||||
INCLUDE_JARS wpimath_jar wpiunits_jar ${EJML_JARS} wpiutil_jar ${OPENCV_JAR_FILE}
|
||||
INCLUDE_JARS
|
||||
wpimath_jar
|
||||
wpiunits_jar
|
||||
wpiutil_jar
|
||||
${EJML_JARS}
|
||||
${OPENCV_JAR_FILE}
|
||||
${JACKSON_JARS}
|
||||
OUTPUT_NAME apriltag
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
GENERATE_NATIVE_HEADERS apriltag_jni_headers
|
||||
)
|
||||
set_property(TARGET apriltag_jar PROPERTY FOLDER "java")
|
||||
@@ -83,7 +86,6 @@ if(WITH_JAVA)
|
||||
endif()
|
||||
|
||||
if(WITH_JAVA_SOURCE)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
file(GLOB APRILTAG_SOURCES src/main/java/edu/wpi/first/apriltag/*.java)
|
||||
add_jar(
|
||||
@@ -94,6 +96,7 @@ if(WITH_JAVA_SOURCE)
|
||||
"edu/wpi/first/apriltag/jni"
|
||||
src/main/java/edu/wpi/first/apriltag/jni/AprilTagJNI.java
|
||||
OUTPUT_NAME apriltag-sources
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
|
||||
get_property(APRILTAG_SRC_JAR_FILE TARGET apriltag_src_jar PROPERTY JAR_FILE)
|
||||
|
||||
@@ -3,15 +3,11 @@ project(cameraserver)
|
||||
include(CompileWarnings)
|
||||
include(AddTest)
|
||||
|
||||
find_package(OpenCV REQUIRED)
|
||||
|
||||
# Java bindings
|
||||
if(WITH_JAVA)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
|
||||
#find java files, copy them locally
|
||||
|
||||
#find JAR file, copy it locally
|
||||
set(OPENCV_JAVA_INSTALL_DIR ${OpenCV_INSTALL_PATH}/share/java/opencv4)
|
||||
|
||||
find_file(
|
||||
@@ -32,6 +28,7 @@ if(WITH_JAVA)
|
||||
${JAVA_SOURCES}
|
||||
INCLUDE_JARS wpiutil_jar cscore_jar ntcore_jar ${OPENCV_JAR_FILE}
|
||||
OUTPUT_NAME cameraserver
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
set_property(TARGET cameraserver_jar PROPERTY FOLDER "java")
|
||||
|
||||
@@ -44,7 +41,6 @@ if(WITH_JAVA)
|
||||
endif()
|
||||
|
||||
if(WITH_JAVA_SOURCE)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
file(GLOB CAMERASERVER_SOURCES src/main/java/edu/wpi/first/cameraserver/*.java)
|
||||
file(GLOB VISION_SOURCES src/main/java/edu/wpi/first/vision/*.java)
|
||||
@@ -54,6 +50,7 @@ if(WITH_JAVA_SOURCE)
|
||||
NAMESPACE "edu/wpi/first/cameraserver" ${CAMERASERVER_SOURCES}
|
||||
NAMESPACE "edu/wpi/first/vision" ${VISION_SOURCES}
|
||||
OUTPUT_NAME cameraserver-sources
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
|
||||
get_property(CAMERASERVER_SRC_JAR_FILE TARGET cameraserver_src_jar PROPERTY JAR_FILE)
|
||||
|
||||
29
cmake/modules/OptionValidation.cmake
Normal file
29
cmake/modules/OptionValidation.cmake
Normal file
@@ -0,0 +1,29 @@
|
||||
function(wpilib_config)
|
||||
cmake_parse_arguments(config "" "" "OPTIONS;REQUIRES" ${ARGN})
|
||||
foreach(opt ${config_OPTIONS})
|
||||
if(NOT ${opt})
|
||||
return()
|
||||
endif()
|
||||
endforeach()
|
||||
foreach(required_opt ${config_REQUIRES})
|
||||
if(NOT ${required_opt})
|
||||
list(JOIN config_OPTIONS " and " options_list)
|
||||
list(LENGTH config_OPTIONS option_len)
|
||||
if(option_len GREATER 1)
|
||||
set(requires require)
|
||||
set(option_msg "one of the listed options")
|
||||
else()
|
||||
set(requires requires)
|
||||
set(option_msg ${options_list})
|
||||
endif()
|
||||
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"
|
||||
FATAL: ${options_list} ${requires} ${required_opt}.
|
||||
Either enable ${required_opt} or disable ${option_msg}.
|
||||
"
|
||||
)
|
||||
endif()
|
||||
endforeach()
|
||||
endfunction()
|
||||
@@ -5,8 +5,6 @@ include(CompileWarnings)
|
||||
include(AddTest)
|
||||
include(LinkMacOSGUI)
|
||||
|
||||
find_package(OpenCV REQUIRED)
|
||||
|
||||
file(GLOB cscore_native_src src/main/native/cpp/*.cpp)
|
||||
file(GLOB cscore_linux_src src/main/native/linux/*.cpp)
|
||||
file(GLOB cscore_osx_src src/main/native/osx/*.cpp)
|
||||
@@ -16,23 +14,21 @@ file(GLOB cscore_windows_src src/main/native/windows/*.cpp)
|
||||
add_library(cscore ${cscore_native_src})
|
||||
set_target_properties(cscore PROPERTIES DEBUG_POSTFIX "d")
|
||||
|
||||
if(NOT MSVC)
|
||||
if(APPLE)
|
||||
target_sources(cscore PRIVATE ${cscore_osx_src} ${cscore_osx_objc_src})
|
||||
target_compile_options(cscore PRIVATE "-fobjc-arc")
|
||||
set_target_properties(
|
||||
cscore
|
||||
PROPERTIES
|
||||
LINK_FLAGS
|
||||
"-framework CoreFoundation -framework AVFoundation -framework Foundation -framework CoreMedia -framework CoreVideo"
|
||||
)
|
||||
else()
|
||||
target_sources(cscore PRIVATE ${cscore_linux_src})
|
||||
endif()
|
||||
else()
|
||||
if(APPLE)
|
||||
target_sources(cscore PRIVATE ${cscore_osx_src} ${cscore_osx_objc_src})
|
||||
target_compile_options(cscore PRIVATE "-fobjc-arc")
|
||||
set_target_properties(
|
||||
cscore
|
||||
PROPERTIES
|
||||
LINK_FLAGS
|
||||
"-framework CoreFoundation -framework AVFoundation -framework Foundation -framework CoreMedia -framework CoreVideo"
|
||||
)
|
||||
elseif(MSVC)
|
||||
target_sources(cscore PRIVATE ${cscore_windows_src})
|
||||
target_compile_definitions(cscore PUBLIC -DNOMINMAX)
|
||||
target_compile_definitions(cscore PRIVATE -D_CRT_SECURE_NO_WARNINGS)
|
||||
else()
|
||||
target_sources(cscore PRIVATE ${cscore_linux_src})
|
||||
endif()
|
||||
|
||||
target_include_directories(
|
||||
@@ -81,12 +77,9 @@ endforeach()
|
||||
|
||||
# Java bindings
|
||||
if(WITH_JAVA)
|
||||
find_package(Java REQUIRED)
|
||||
find_package(JNI REQUIRED)
|
||||
include(UseJava)
|
||||
|
||||
#find java files, copy them locally
|
||||
|
||||
#find JAR file, copy it locally
|
||||
if("${OPENCV_JAVA_INSTALL_DIR}" STREQUAL "")
|
||||
set(OPENCV_JAVA_INSTALL_DIR ${OpenCV_INSTALL_PATH}/share/java/opencv4)
|
||||
endif()
|
||||
@@ -101,24 +94,6 @@ if(WITH_JAVA)
|
||||
${OpenCV_INSTALL_PATH}/share/OpenCV/java
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
find_file(
|
||||
OPENCV_JNI_FILE
|
||||
NAMES
|
||||
libopencv_java${OpenCV_VERSION_MAJOR}${OpenCV_VERSION_MINOR}${OpenCV_VERSION_PATCH}.so
|
||||
libopencv_java${OpenCV_VERSION_MAJOR}${OpenCV_VERSION_MINOR}${OpenCV_VERSION_PATCH}.dylib
|
||||
opencv_java${OpenCV_VERSION_MAJOR}${OpenCV_VERSION_MINOR}${OpenCV_VERSION_PATCH}.dll
|
||||
PATHS
|
||||
${OPENCV_JAVA_INSTALL_DIR}
|
||||
${OpenCV_INSTALL_PATH}/bin
|
||||
${OpenCV_INSTALL_PATH}/bin/Release
|
||||
${OpenCV_INSTALL_PATH}/bin/Debug
|
||||
${OpenCV_INSTALL_PATH}/lib
|
||||
${OpenCV_INSTALL_PATH}/lib/Release
|
||||
${OpenCV_INSTALL_PATH}/lib/Debug
|
||||
${OpenCV_INSTALL_PATH}/lib/jni
|
||||
${OpenCV_INSTALL_PATH}/share/java/opencv4
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
|
||||
file(GLOB cscore_jni_src src/main/native/cpp/jni/CameraServerJNI.cpp)
|
||||
|
||||
@@ -130,6 +105,7 @@ if(WITH_JAVA)
|
||||
${JAVA_SOURCES}
|
||||
INCLUDE_JARS wpiutil_jar ${OPENCV_JAR_FILE}
|
||||
OUTPUT_NAME cscore
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
GENERATE_NATIVE_HEADERS cscore_jni_headers
|
||||
)
|
||||
set_property(TARGET cscore_jar PROPERTY FOLDER "java")
|
||||
@@ -138,27 +114,6 @@ if(WITH_JAVA)
|
||||
install_jar_exports(TARGETS cscore_jar FILE cscore_jar.cmake DESTINATION share/cscore)
|
||||
install(FILES ${OPENCV_JAR_FILE} DESTINATION "${java_lib_dest}")
|
||||
|
||||
if(MSVC)
|
||||
install(FILES ${OPENCV_JNI_FILE} DESTINATION "${jni_lib_dest}")
|
||||
|
||||
foreach(cvFile ${OpenCV_LIBS})
|
||||
find_file(
|
||||
${cvFile}Loc
|
||||
NAMES
|
||||
${cvFile}${OpenCV_VERSION_MAJOR}${OpenCV_VERSION_MINOR}${OpenCV_VERSION_PATCH}.dll
|
||||
${cvFile}${OpenCV_VERSION_MAJOR}${OpenCV_VERSION_MINOR}${OpenCV_VERSION_PATCH}d.dll
|
||||
PATHS
|
||||
${OPENCV_JAVA_INSTALL_DIR}
|
||||
${OpenCV_INSTALL_PATH}/bin
|
||||
${OpenCV_INSTALL_PATH}/bin/Release
|
||||
${OpenCV_INSTALL_PATH}/bin/Debug
|
||||
${OpenCV_INSTALL_PATH}/lib
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
install(FILES ${${cvFile}Loc} DESTINATION "${jni_lib_dest}")
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
add_library(cscorejni ${cscore_jni_src})
|
||||
wpilib_target_warnings(cscorejni)
|
||||
target_link_libraries(cscorejni PUBLIC cscore wpiutil ${OpenCV_LIBS})
|
||||
@@ -173,7 +128,6 @@ if(WITH_JAVA)
|
||||
endif()
|
||||
|
||||
if(WITH_JAVA_SOURCE)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
file(GLOB CSCORE_SOURCES src/main/java/edu/wpi/first/cscore/*.java)
|
||||
file(GLOB CSCORE_RAW_SOURCES src/main/java/edu/wpi/first/cscore/raw/*.java)
|
||||
@@ -183,6 +137,7 @@ if(WITH_JAVA_SOURCE)
|
||||
NAMESPACE "edu/wpi/first/cscore" ${CSCORE_SOURCES}
|
||||
NAMESPACE "edu/wpi/first/cscore/raw" ${CSCORE_RAW_SOURCES}
|
||||
OUTPUT_NAME cscore-sources
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
|
||||
get_property(CSCORE_SRC_JAR_FILE TARGET cscore_src_jar PROPERTY JAR_FILE)
|
||||
|
||||
@@ -4,11 +4,9 @@ include(CompileWarnings)
|
||||
include(GenResources)
|
||||
|
||||
if(WITH_JAVA)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
|
||||
file(GLOB JACKSON_JARS "${WPILIB_BINARY_DIR}/wpiutil/thirdparty/jackson/*.jar")
|
||||
set(CMAKE_JAVA_INCLUDE_PATH fieldImages.jar ${JACKSON_JARS})
|
||||
|
||||
file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java)
|
||||
file(
|
||||
@@ -23,13 +21,12 @@ if(WITH_JAVA)
|
||||
SOURCES ${JAVA_SOURCES}
|
||||
RESOURCES
|
||||
NAMESPACE "edu/wpi/first/fields" ${JAVA_RESOURCES}
|
||||
INCLUDE_JARS ${JACKSON_JARS}
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
OUTPUT_NAME fieldImages
|
||||
)
|
||||
|
||||
get_property(FIELD_IMAGES_JAR_FILE TARGET field_images_jar PROPERTY JAR_FILE)
|
||||
install(FILES ${FIELD_IMAGES_JAR_FILE} DESTINATION "${java_lib_dest}")
|
||||
|
||||
set_property(TARGET field_images_jar PROPERTY FOLDER "java")
|
||||
install_jar(field_images_jar DESTINATION ${java_lib_dest})
|
||||
endif()
|
||||
|
||||
generate_resources(
|
||||
|
||||
@@ -43,8 +43,6 @@ install(EXPORT hal DESTINATION share/hal)
|
||||
|
||||
# Java bindings
|
||||
if(WITH_JAVA)
|
||||
find_package(Java REQUIRED)
|
||||
find_package(JNI REQUIRED)
|
||||
include(UseJava)
|
||||
|
||||
file(GLOB_RECURSE hal_shared_jni_src src/main/native/cpp/jni/*.cpp)
|
||||
@@ -57,6 +55,7 @@ if(WITH_JAVA)
|
||||
${JAVA_SOURCES}
|
||||
INCLUDE_JARS wpiutil_jar
|
||||
OUTPUT_NAME wpiHal
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
GENERATE_NATIVE_HEADERS hal_jni_headers
|
||||
)
|
||||
set_property(TARGET hal_jar PROPERTY FOLDER "java")
|
||||
@@ -80,7 +79,6 @@ if(WITH_JAVA)
|
||||
endif()
|
||||
|
||||
if(WITH_JAVA_SOURCE)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
file(GLOB HAL_SOURCES src/main/java/edu/wpi/first/hal/*.java src/generated/main/java/*.java)
|
||||
file(GLOB HAL_CAN_SOURCES src/main/java/edu/wpi/first/hal/can/*.java)
|
||||
@@ -97,6 +95,7 @@ if(WITH_JAVA_SOURCE)
|
||||
NAMESPACE "edu/wpi/first/hal/simulation" ${HAL_SIMULATION_SOURCES}
|
||||
NAMESPACE "edu/wpi/first/hal/util" ${HAL_UTIL_SOURCES}
|
||||
OUTPUT_NAME wpiHal-sources
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
|
||||
get_property(HAL_SRC_JAR_FILE TARGET hal_src_jar PROPERTY JAR_FILE)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
include(FetchContent)
|
||||
include(LinkMacOSGUI)
|
||||
|
||||
fetchcontent_declare(
|
||||
glfw3
|
||||
@@ -82,14 +83,12 @@ endif()
|
||||
target_compile_definitions(imgui PUBLIC IMGUI_IMPL_OPENGL_LOADER_GL3W)
|
||||
if(MSVC)
|
||||
target_sources(imgui PRIVATE ${imgui_SOURCE_DIR}/backends/imgui_impl_dx11.cpp)
|
||||
elseif(APPLE)
|
||||
target_compile_options(imgui PRIVATE -fobjc-arc)
|
||||
wpilib_link_macos_gui(imgui)
|
||||
target_sources(imgui PRIVATE ${imgui_SOURCE_DIR}/backends/imgui_impl_metal.mm)
|
||||
else()
|
||||
if(APPLE)
|
||||
target_compile_options(imgui PRIVATE -fobjc-arc)
|
||||
set_target_properties(imgui PROPERTIES LINK_FLAGS "-framework Metal -framework QuartzCore")
|
||||
target_sources(imgui PRIVATE ${imgui_SOURCE_DIR}/backends/imgui_impl_metal.mm)
|
||||
else()
|
||||
#target_sources(imgui PRIVATE ${imgui_SOURCE_DIR}/backends/imgui_impl_opengl3.cpp)
|
||||
endif()
|
||||
#target_sources(imgui PRIVATE ${imgui_SOURCE_DIR}/backends/imgui_impl_opengl3.cpp)
|
||||
endif()
|
||||
target_link_libraries(imgui PUBLIC glfw)
|
||||
target_include_directories(
|
||||
|
||||
@@ -39,14 +39,10 @@ install(EXPORT ntcore DESTINATION share/ntcore)
|
||||
|
||||
# Java bindings
|
||||
if(WITH_JAVA)
|
||||
find_package(Java REQUIRED)
|
||||
find_package(JNI REQUIRED)
|
||||
include(UseJava)
|
||||
|
||||
file(GLOB QUICKBUF_JAR ${WPILIB_BINARY_DIR}/wpiutil/thirdparty/quickbuf/*.jar)
|
||||
|
||||
set(CMAKE_JAVA_INCLUDE_PATH wpimath.jar ${QUICKBUF_JAR})
|
||||
|
||||
file(GLOB ntcore_jni_src src/main/native/cpp/jni/*.cpp src/generated/main/native/cpp/jni/*.cpp)
|
||||
|
||||
file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java src/generated/main/java/*.java)
|
||||
@@ -55,8 +51,9 @@ if(WITH_JAVA)
|
||||
add_jar(
|
||||
ntcore_jar
|
||||
${JAVA_SOURCES}
|
||||
INCLUDE_JARS wpiutil_jar
|
||||
INCLUDE_JARS wpiutil_jar ${QUICKBUF_JAR}
|
||||
OUTPUT_NAME ntcore
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
GENERATE_NATIVE_HEADERS ntcore_jni_headers
|
||||
)
|
||||
set_property(TARGET ntcore_jar PROPERTY FOLDER "java")
|
||||
@@ -70,10 +67,6 @@ if(WITH_JAVA)
|
||||
|
||||
set_property(TARGET ntcorejni PROPERTY FOLDER "libraries")
|
||||
|
||||
if(MSVC)
|
||||
install(TARGETS ntcorejni RUNTIME DESTINATION "${jni_lib_dest}" COMPONENT Runtime)
|
||||
endif()
|
||||
|
||||
target_link_libraries(ntcorejni PRIVATE ntcore_jni_headers)
|
||||
add_dependencies(ntcorejni ntcore_jar)
|
||||
|
||||
@@ -82,7 +75,6 @@ if(WITH_JAVA)
|
||||
endif()
|
||||
|
||||
if(WITH_JAVA_SOURCE)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
file(
|
||||
GLOB NTCORE_SOURCES
|
||||
@@ -94,6 +86,7 @@ if(WITH_JAVA_SOURCE)
|
||||
RESOURCES
|
||||
NAMESPACE "edu/wpi/first/networktables" ${NTCORE_SOURCES}
|
||||
OUTPUT_NAME ntcore-sources
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
|
||||
get_property(NTCORE_SRC_JAR_FILE TARGET ntcore_src_jar PROPERTY JAR_FILE)
|
||||
|
||||
@@ -5,7 +5,6 @@ include(CompileWarnings)
|
||||
include(AddTest)
|
||||
|
||||
if(WITH_JAVA)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
|
||||
file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java)
|
||||
@@ -22,6 +21,7 @@ if(WITH_JAVA)
|
||||
wpiutil_jar
|
||||
wpilibj_jar
|
||||
OUTPUT_NAME romiVendordep
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
set_property(TARGET romiVendordep_jar PROPERTY FOLDER "java")
|
||||
|
||||
@@ -34,7 +34,6 @@ if(WITH_JAVA)
|
||||
endif()
|
||||
|
||||
if(WITH_JAVA_SOURCE)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
file(GLOB_RECURSE ROMIVENDORDEP_SOURCES src/main/java/*.java)
|
||||
add_jar(
|
||||
@@ -42,6 +41,7 @@ if(WITH_JAVA_SOURCE)
|
||||
RESOURCES
|
||||
NAMESPACE "edu/wpi/first/wpilibj/romi" ${ROMIVENDORDEP_SOURCES}
|
||||
OUTPUT_NAME romiVendordep-sources
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
|
||||
get_property(ROMIVENDORDEP_SRC_JAR_FILE TARGET romiVendordep_src_jar PROPERTY JAR_FILE)
|
||||
@@ -66,7 +66,7 @@ target_include_directories(
|
||||
$<INSTALL_INTERFACE:${include_dest}/romiVendordep>
|
||||
)
|
||||
|
||||
install(TARGETS romiVendordep EXPORT romivendordep DESTINATION "${main_lib_dest}")
|
||||
install(TARGETS romiVendordep EXPORT romivendordep)
|
||||
export(TARGETS romiVendordep FILE romivendordep.cmake NAMESPACE romivendordep::)
|
||||
install(DIRECTORY src/main/native/include/ DESTINATION "${include_dest}/romiVendordep")
|
||||
|
||||
|
||||
@@ -13,5 +13,5 @@ target_include_directories(halsim_xrp PRIVATE src/main/native/include)
|
||||
|
||||
set_property(TARGET halsim_xrp PROPERTY FOLDER "libraries")
|
||||
|
||||
install(TARGETS halsim_xrp EXPORT halsim_xrp DESTINATION "${main_lib_dest}")
|
||||
install(TARGETS halsim_xrp EXPORT halsim_xrp)
|
||||
export(TARGETS halsim_xrp FILE halsim_xrp.cmake NAMESPACE halsim_xrp::)
|
||||
|
||||
@@ -30,14 +30,12 @@ target_include_directories(
|
||||
|
||||
if(MSVC)
|
||||
target_sources(wpigui PRIVATE ${wpigui_windows_src})
|
||||
elseif(APPLE)
|
||||
target_compile_options(wpigui PRIVATE -fobjc-arc)
|
||||
wpilib_link_macos_gui(wpigui)
|
||||
target_sources(wpigui PRIVATE ${wpigui_mac_src})
|
||||
else()
|
||||
if(APPLE)
|
||||
target_compile_options(wpigui PRIVATE -fobjc-arc)
|
||||
set_target_properties(wpigui PROPERTIES LINK_FLAGS "-framework Metal -framework QuartzCore")
|
||||
target_sources(wpigui PRIVATE ${wpigui_mac_src})
|
||||
else()
|
||||
target_sources(wpigui PRIVATE ${wpigui_unix_src})
|
||||
endif()
|
||||
target_sources(wpigui PRIVATE ${wpigui_unix_src})
|
||||
endif()
|
||||
|
||||
add_executable(wpiguidev src/dev/native/cpp/main.cpp)
|
||||
|
||||
@@ -5,7 +5,6 @@ include(CompileWarnings)
|
||||
include(AddTest)
|
||||
|
||||
if(WITH_JAVA)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
|
||||
file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java src/generated/main/java/*.java)
|
||||
@@ -24,6 +23,7 @@ if(WITH_JAVA)
|
||||
wpiutil_jar
|
||||
wpilibj_jar
|
||||
OUTPUT_NAME wpilibNewCommands
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
set_property(TARGET wpilibNewCommands_jar PROPERTY FOLDER "java")
|
||||
|
||||
@@ -36,7 +36,6 @@ if(WITH_JAVA)
|
||||
endif()
|
||||
|
||||
if(WITH_JAVA_SOURCE)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
file(GLOB WPILIBNEWCOMMANDS_SOURCES src/main/java/edu/wpi/first/wpilibj2/command/*.java)
|
||||
file(
|
||||
@@ -50,6 +49,7 @@ if(WITH_JAVA_SOURCE)
|
||||
NAMESPACE "edu/wpi/first/wpilibj2/command" ${WPILIBNEWCOMMANDS_SOURCES}
|
||||
NAMESPACE "edu/wpi/first/wpilibj2/command/button" ${WPILIBNEWCOMMANDS_BUTTON_SOURCES}
|
||||
OUTPUT_NAME wpilibNewCommands-sources
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
|
||||
get_property(WPILIBNEWCOMMANDS_SRC_JAR_FILE TARGET wpilibNewCommands_src_jar PROPERTY JAR_FILE)
|
||||
@@ -82,6 +82,10 @@ target_include_directories(
|
||||
install(TARGETS wpilibNewCommands EXPORT wpilibnewcommands)
|
||||
export(TARGETS wpilibNewCommands FILE wpilibnewcommands.cmake NAMESPACE wpilibnewcommands::)
|
||||
install(DIRECTORY src/main/native/include/ DESTINATION "${include_dest}/wpilibNewCommands")
|
||||
install(
|
||||
DIRECTORY src/generated/main/native/include/
|
||||
DESTINATION "${include_dest}/wpilibNewCommands"
|
||||
)
|
||||
|
||||
configure_file(
|
||||
wpilibnewcommands-config.cmake.in
|
||||
|
||||
@@ -25,7 +25,6 @@ target_include_directories(
|
||||
wpilib_target_warnings(wpilibc)
|
||||
|
||||
if(WITH_CSCORE)
|
||||
find_package(OpenCV)
|
||||
target_link_libraries(wpilibc PUBLIC cameraserver cscore ${OpenCV_LIBS})
|
||||
else()
|
||||
target_compile_definitions(wpilibc PRIVATE DYNAMIC_CAMERA_SERVER)
|
||||
@@ -43,6 +42,7 @@ set_property(TARGET wpilibc PROPERTY FOLDER "libraries")
|
||||
install(TARGETS wpilibc EXPORT wpilibc)
|
||||
export(TARGETS wpilibc FILE wpilibc.cmake NAMESPACE wpilibc::)
|
||||
install(DIRECTORY src/main/native/include/ DESTINATION "${include_dest}/wpilibc")
|
||||
install(DIRECTORY src/generated/main/native/include/ DESTINATION "${include_dest}/wpilibc")
|
||||
|
||||
configure_file(wpilibc-config.cmake.in ${WPILIB_BINARY_DIR}/wpilibc-config.cmake)
|
||||
install(FILES ${WPILIB_BINARY_DIR}/wpilibc-config.cmake DESTINATION share/wpilibc)
|
||||
|
||||
@@ -2,8 +2,6 @@ project(wpilibj)
|
||||
|
||||
# Java bindings
|
||||
if(WITH_JAVA)
|
||||
find_package(OpenCV REQUIRED)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
|
||||
set(OPENCV_JAVA_INSTALL_DIR ${OpenCV_INSTALL_PATH}/share/java/opencv4)
|
||||
@@ -41,6 +39,7 @@ if(WITH_JAVA)
|
||||
wpiunits_jar
|
||||
wpiutil_jar
|
||||
OUTPUT_NAME wpilibj
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
set_property(TARGET wpilibj_jar PROPERTY FOLDER "java")
|
||||
|
||||
@@ -51,7 +50,6 @@ if(WITH_JAVA)
|
||||
endif()
|
||||
|
||||
if(WITH_JAVA_SOURCE)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
file(
|
||||
GLOB WPILIBJ_SOURCES
|
||||
@@ -95,6 +93,7 @@ if(WITH_JAVA_SOURCE)
|
||||
NAMESPACE "edu/wpi/first/wpilibj/smartdashboard" ${WPILIBJ_SMARTDASHBOARD_SOURCES}
|
||||
NAMESPACE "edu/wpi/first/wpilibj/util" ${WPILIBJ_UTIL_SOURCES}
|
||||
OUTPUT_NAME wpilibj-sources
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
|
||||
get_property(WPILIBJ_SRC_JAR_FILE TARGET wpilibj_src_jar PROPERTY JAR_FILE)
|
||||
|
||||
@@ -31,8 +31,6 @@ file(
|
||||
|
||||
# Java bindings
|
||||
if(WITH_JAVA)
|
||||
find_package(Java REQUIRED)
|
||||
find_package(JNI REQUIRED)
|
||||
include(UseJava)
|
||||
|
||||
if(NOT EXISTS "${WPILIB_BINARY_DIR}/wpimath/thirdparty/ejml/ejml-simple-0.43.1.jar")
|
||||
@@ -77,8 +75,6 @@ if(WITH_JAVA)
|
||||
file(GLOB JACKSON_JARS "${WPILIB_BINARY_DIR}/wpiutil/thirdparty/jackson/*.jar")
|
||||
file(GLOB QUICKBUF_JAR ${WPILIB_BINARY_DIR}/wpiutil/thirdparty/quickbuf/*.jar)
|
||||
|
||||
set(CMAKE_JAVA_INCLUDE_PATH wpimath.jar ${EJML_JARS} ${JACKSON_JARS} ${QUICKBUF_JAR})
|
||||
|
||||
set(CMAKE_JNI_TARGET true)
|
||||
|
||||
file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java src/generated/main/java/*.java)
|
||||
@@ -86,8 +82,9 @@ if(WITH_JAVA)
|
||||
add_jar(
|
||||
wpimath_jar
|
||||
${JAVA_SOURCES}
|
||||
INCLUDE_JARS ${EJML_JARS} wpiutil_jar wpiunits_jar
|
||||
INCLUDE_JARS wpiutil_jar wpiunits_jar ${EJML_JARS} ${JACKSON_JARS} ${QUICKBUF_JAR}
|
||||
OUTPUT_NAME wpimath
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
GENERATE_NATIVE_HEADERS wpimath_jni_headers
|
||||
)
|
||||
set_property(TARGET wpimath_jar PROPERTY FOLDER "java")
|
||||
@@ -109,7 +106,6 @@ if(WITH_JAVA)
|
||||
endif()
|
||||
|
||||
if(WITH_JAVA_SOURCE)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
file(
|
||||
GLOB WPIMATH_SOURCES
|
||||
@@ -150,6 +146,7 @@ if(WITH_JAVA_SOURCE)
|
||||
${WPIMATH_TRAJECTORY_CONSTRAINT_SOURCES}
|
||||
NAMESPACE "edu/wpi/first/math/util" src/main/java/edu/wpi/first/math/util/Units.java
|
||||
OUTPUT_NAME wpimath-sources
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
|
||||
get_property(WPIMATH_SRC_JAR_FILE TARGET wpimath_src_jar PROPERTY JAR_FILE)
|
||||
|
||||
@@ -9,8 +9,6 @@ file(GLOB wpinet_jni_src src/main/native/cpp/jni/WPINetJNI.cpp)
|
||||
|
||||
# Java bindings
|
||||
if(WITH_JAVA)
|
||||
find_package(Java REQUIRED)
|
||||
find_package(JNI REQUIRED)
|
||||
include(UseJava)
|
||||
|
||||
set(CMAKE_JNI_TARGET true)
|
||||
@@ -22,6 +20,7 @@ if(WITH_JAVA)
|
||||
${JAVA_SOURCES}
|
||||
INCLUDE_JARS wpiutil_jar
|
||||
OUTPUT_NAME wpinet
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
GENERATE_NATIVE_HEADERS wpinet_jni_headers
|
||||
)
|
||||
set_property(TARGET wpinet_jar PROPERTY FOLDER "java")
|
||||
@@ -43,7 +42,6 @@ if(WITH_JAVA)
|
||||
endif()
|
||||
|
||||
if(WITH_JAVA_SOURCE)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
file(GLOB WPINET_SOURCES src/main/java/edu/wpi/first/net/*.java)
|
||||
add_jar(
|
||||
@@ -51,6 +49,7 @@ if(WITH_JAVA_SOURCE)
|
||||
RESOURCES
|
||||
NAMESPACE "edu/wpi/first/net" ${WPINET_SOURCES}
|
||||
OUTPUT_NAME wpinet-sources
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
|
||||
get_property(WPINET_SRC_JAR_FILE TARGET wpinet_src_jar PROPERTY JAR_FILE)
|
||||
@@ -145,7 +144,6 @@ if(NOT USE_SYSTEM_LIBUV)
|
||||
wpinet
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/main/native/thirdparty/libuv/include>
|
||||
$<INSTALL_INTERFACE:${include_dest}/wpinet>
|
||||
)
|
||||
if(NOT MSVC)
|
||||
target_sources(wpinet PRIVATE ${uv_unix_src})
|
||||
@@ -185,7 +183,6 @@ target_include_directories(
|
||||
wpinet
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/main/native/thirdparty/tcpsockets/include>
|
||||
$<INSTALL_INTERFACE:${include_dest}/wpinet>
|
||||
)
|
||||
|
||||
install(DIRECTORY src/main/native/include/ DESTINATION "${include_dest}/wpinet")
|
||||
|
||||
@@ -2,12 +2,16 @@ project(wpiunits)
|
||||
|
||||
# Java bindings
|
||||
if(WITH_JAVA)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
|
||||
file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java)
|
||||
|
||||
add_jar(wpiunits_jar ${JAVA_SOURCES} OUTPUT_NAME wpiunits)
|
||||
add_jar(
|
||||
wpiunits_jar
|
||||
${JAVA_SOURCES}
|
||||
OUTPUT_NAME wpiunits
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
set_property(TARGET wpiunits_jar PROPERTY FOLDER "java")
|
||||
|
||||
install_jar(wpiunits_jar DESTINATION ${java_lib_dest})
|
||||
|
||||
@@ -14,8 +14,6 @@ file(
|
||||
|
||||
# Java bindings
|
||||
if(WITH_JAVA)
|
||||
find_package(Java REQUIRED)
|
||||
find_package(JNI REQUIRED)
|
||||
include(UseJava)
|
||||
|
||||
if(NOT EXISTS "${WPILIB_BINARY_DIR}/wpiutil/thirdparty/jackson/jackson-core-2.15.2.jar")
|
||||
@@ -47,10 +45,9 @@ if(WITH_JAVA)
|
||||
set(JAR_ROOT "${WPILIB_BINARY_DIR}/wpiutil/thirdparty/quickbuf")
|
||||
|
||||
message(STATUS "Downloading Quickbuf jarfile...")
|
||||
file(
|
||||
DOWNLOAD
|
||||
"${BASE_URL}us/hebi/quickbuf/quickbuf-runtime/1.3.3/quickbuf-runtime-1.3.3.jar"
|
||||
"${JAR_ROOT}/quickbuf-runtime-1.3.3.jar"
|
||||
download_and_check(
|
||||
"${BASE_URL}us/hebi/quickbuf/quickbuf-runtime/1.3.3/quickbuf-runtime-1.3.3.jar"
|
||||
"${JAR_ROOT}/quickbuf-runtime-1.3.3.jar"
|
||||
)
|
||||
|
||||
message(STATUS "Downloaded.")
|
||||
@@ -58,8 +55,6 @@ if(WITH_JAVA)
|
||||
|
||||
file(GLOB QUICKBUF_JAR ${WPILIB_BINARY_DIR}/wpiutil/thirdparty/quickbuf/*.jar)
|
||||
|
||||
set(CMAKE_JAVA_INCLUDE_PATH wpiutil.jar ${JACKSON_JARS} ${QUICKBUF_JAR})
|
||||
|
||||
set(CMAKE_JNI_TARGET true)
|
||||
|
||||
file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java)
|
||||
@@ -69,6 +64,7 @@ if(WITH_JAVA)
|
||||
${JAVA_SOURCES}
|
||||
INCLUDE_JARS ${JACKSON_JARS} ${QUICKBUF_JAR}
|
||||
OUTPUT_NAME wpiutil
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
GENERATE_NATIVE_HEADERS wpiutil_jni_headers
|
||||
)
|
||||
set_property(TARGET wpiutil_jar PROPERTY FOLDER "java")
|
||||
@@ -90,7 +86,6 @@ if(WITH_JAVA)
|
||||
endif()
|
||||
|
||||
if(WITH_JAVA_SOURCE)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
file(GLOB WPIUTIL_SOURCES src/main/java/edu/wpi/first/util/*.java)
|
||||
file(GLOB WPIUTIL_CLEANUP_SOURCES src/main/java/edu/wpi/first/util/cleanup/*.java)
|
||||
@@ -108,6 +103,7 @@ if(WITH_JAVA_SOURCE)
|
||||
NAMESPACE "edu/wpi/first/util/function" ${WPIUTIL_FUNCTION_SOURCES}
|
||||
NAMESPACE "edu/wpi/first/util/sendable" ${WPIUTIL_SENDABLE_SOURCES}
|
||||
OUTPUT_NAME wpiutil-sources
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
|
||||
get_property(WPIUTIL_SRC_JAR_FILE TARGET wpiutil_src_jar PROPERTY JAR_FILE)
|
||||
@@ -176,7 +172,6 @@ if(NOT USE_SYSTEM_FMTLIB)
|
||||
wpiutil
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/main/native/thirdparty/fmtlib/include>
|
||||
$<INSTALL_INTERFACE:${include_dest}/wpiutil>
|
||||
)
|
||||
else()
|
||||
find_package(fmt CONFIG REQUIRED)
|
||||
@@ -208,49 +203,36 @@ install(
|
||||
target_include_directories(
|
||||
wpiutil
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/main/native/include>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/main/native/thirdparty/expected/include>
|
||||
$<INSTALL_INTERFACE:${include_dest}/wpiutil>
|
||||
)
|
||||
install(DIRECTORY src/main/native/thirdparty/memory/include/ DESTINATION "${include_dest}/wpiutil")
|
||||
target_include_directories(
|
||||
wpiutil
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/main/native/include>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/main/native/thirdparty/memory/include>
|
||||
$<INSTALL_INTERFACE:${include_dest}/wpiutil>
|
||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/main/native/thirdparty/memory/include>
|
||||
)
|
||||
|
||||
install(DIRECTORY src/main/native/thirdparty/json/include/ DESTINATION "${include_dest}/wpiutil")
|
||||
target_include_directories(
|
||||
wpiutil
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/main/native/thirdparty/json/include>
|
||||
$<INSTALL_INTERFACE:${include_dest}/wpiutil>
|
||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/main/native/thirdparty/json/include>
|
||||
)
|
||||
|
||||
install(DIRECTORY src/main/native/thirdparty/llvm/include/ DESTINATION "${include_dest}/wpiutil")
|
||||
target_include_directories(
|
||||
wpiutil
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/main/native/thirdparty/llvm/include>
|
||||
$<INSTALL_INTERFACE:${include_dest}/wpiutil>
|
||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/main/native/thirdparty/llvm/include>
|
||||
)
|
||||
|
||||
install(DIRECTORY src/main/native/thirdparty/mpack/include/ DESTINATION "${include_dest}/wpiutil")
|
||||
target_include_directories(
|
||||
wpiutil
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/main/native/thirdparty/mpack/include>
|
||||
$<INSTALL_INTERFACE:${include_dest}/wpiutil>
|
||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/main/native/thirdparty/mpack/include>
|
||||
)
|
||||
|
||||
install(DIRECTORY src/main/native/thirdparty/sigslot/include/ DESTINATION "${include_dest}/wpiutil")
|
||||
target_include_directories(
|
||||
wpiutil
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/main/native/thirdparty/sigslot/include>
|
||||
$<INSTALL_INTERFACE:${include_dest}/wpiutil>
|
||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/main/native/thirdparty/sigslot/include>
|
||||
)
|
||||
|
||||
install(DIRECTORY src/main/native/include/ DESTINATION "${include_dest}/wpiutil")
|
||||
|
||||
@@ -5,7 +5,6 @@ include(CompileWarnings)
|
||||
include(AddTest)
|
||||
|
||||
if(WITH_JAVA)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
|
||||
file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java)
|
||||
@@ -22,6 +21,7 @@ if(WITH_JAVA)
|
||||
wpiutil_jar
|
||||
wpilibj_jar
|
||||
OUTPUT_NAME xrpVendordep
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
set_property(TARGET xrpVendordep_jar PROPERTY FOLDER "java")
|
||||
|
||||
@@ -34,7 +34,6 @@ if(WITH_JAVA)
|
||||
endif()
|
||||
|
||||
if(WITH_JAVA_SOURCE)
|
||||
find_package(Java REQUIRED)
|
||||
include(UseJava)
|
||||
file(GLOB XRPVENDORDEP_SOURCES src/main/java/edu/wpi/first/wpilibj/xrp/*.java)
|
||||
add_jar(
|
||||
@@ -42,6 +41,7 @@ if(WITH_JAVA_SOURCE)
|
||||
RESOURCES
|
||||
NAMESPACE "edu/wpi/first/wpilibj/xrp" ${XRPVENDORDEP_SOURCES}
|
||||
OUTPUT_NAME xrpVendordep-sources
|
||||
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
||||
)
|
||||
|
||||
get_property(xrpVendordep_src_JAR_FILE TARGET xrpVendordep_src_jar PROPERTY JAR_FILE)
|
||||
@@ -66,7 +66,7 @@ target_include_directories(
|
||||
$<INSTALL_INTERFACE:${include_dest}/xrpVendordep>
|
||||
)
|
||||
|
||||
install(TARGETS xrpVendordep EXPORT xrpvendordep DESTINATION "${main_lib_dest}")
|
||||
install(TARGETS xrpVendordep EXPORT xrpvendordep)
|
||||
export(TARGETS xrpVendordep FILE xrpvendordep.cmake NAMESPACE xrpvendordep::)
|
||||
install(DIRECTORY src/main/native/include/ DESTINATION "${include_dest}/xrpVendordep")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user