diff --git a/CMakeLists.txt b/CMakeLists.txt index 5e676d47fa..012bcb7ccd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,10 +11,13 @@ if ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows") set(CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION 10.0.18362.0 CACHE STRING INTERNAL FORCE) endif() -cmake_minimum_required(VERSION 3.3.0) +cmake_minimum_required(VERSION 3.11) project(allwpilib) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") +# Make timestamps of extracted files from FetchContent the time of extraction +cmake_policy(SET CMP0135 NEW) + message(STATUS "Platform version: ${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}") set(WPILIB_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/README-CMAKE.md b/README-CMAKE.md index 6a10d5b96c..9d92a8a127 100644 --- a/README-CMAKE.md +++ b/README-CMAKE.md @@ -93,7 +93,7 @@ Using the libraries from C++ is the easiest way to use the built libraries. To do so, create a new folder to contain your project. Add the following code below to a `CMakeLists.txt` file in that directory. ``` -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.11) project(vision_app) # Project Name Here find_package(wpilib REQUIRED) diff --git a/cmake/toolchains/gnu.toolchain.cmake b/cmake/toolchains/gnu.toolchain.cmake index b21dad213d..dbddbd0dc4 100644 --- a/cmake/toolchains/gnu.toolchain.cmake +++ b/cmake/toolchains/gnu.toolchain.cmake @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.3.0) +cmake_minimum_required(VERSION 3.11) # load settings in case of "try compile" set(TOOLCHAIN_CONFIG_FILE "${WPILIB_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/toolchain.config.cmake") diff --git a/cscore/CMakeLists.txt b/cscore/CMakeLists.txt index af0d803429..81cdd4ec50 100644 --- a/cscore/CMakeLists.txt +++ b/cscore/CMakeLists.txt @@ -102,12 +102,7 @@ if (WITH_JAVA) file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java) set(CMAKE_JNI_TARGET true) - if(${CMAKE_VERSION} VERSION_LESS "3.11.0") - set(CMAKE_JAVA_COMPILE_FLAGS "-h" "${CMAKE_CURRENT_BINARY_DIR}/jniheaders") - add_jar(cscore_jar ${JAVA_SOURCES} INCLUDE_JARS wpiutil_jar ${OPENCV_JAR_FILE} OUTPUT_NAME cscore) - else() - add_jar(cscore_jar ${JAVA_SOURCES} INCLUDE_JARS wpiutil_jar ${OPENCV_JAR_FILE} OUTPUT_NAME cscore GENERATE_NATIVE_HEADERS cscore_jni_headers) - endif() + add_jar(cscore_jar ${JAVA_SOURCES} INCLUDE_JARS wpiutil_jar ${OPENCV_JAR_FILE} OUTPUT_NAME cscore GENERATE_NATIVE_HEADERS cscore_jni_headers) get_property(CSCORE_JAR_FILE TARGET cscore_jar PROPERTY JAR_FILE) install(FILES ${CSCORE_JAR_FILE} DESTINATION "${java_lib_dest}") @@ -131,12 +126,7 @@ if (WITH_JAVA) set_property(TARGET cscorejni PROPERTY FOLDER "libraries") - if(${CMAKE_VERSION} VERSION_LESS "3.11.0") - target_include_directories(cscorejni PRIVATE ${JNI_INCLUDE_DIRS}) - target_include_directories(cscorejni PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/jniheaders") - else() - target_link_libraries(cscorejni PRIVATE cscore_jni_headers) - endif() + target_link_libraries(cscorejni PRIVATE cscore_jni_headers) add_dependencies(cscorejni cscore_jar) if (MSVC) diff --git a/hal/CMakeLists.txt b/hal/CMakeLists.txt index fae74aa5f2..45c55675bf 100644 --- a/hal/CMakeLists.txt +++ b/hal/CMakeLists.txt @@ -85,12 +85,7 @@ if (WITH_JAVA) src/main/java/*.java) set(CMAKE_JNI_TARGET true) - if(${CMAKE_VERSION} VERSION_LESS "3.11.0") - set(CMAKE_JAVA_COMPILE_FLAGS "-h" "${CMAKE_CURRENT_BINARY_DIR}/jniheaders") - add_jar(hal_jar ${JAVA_SOURCES} INCLUDE_JARS wpiutil_jar OUTPUT_NAME wpiHal) - else() - add_jar(hal_jar ${JAVA_SOURCES} INCLUDE_JARS wpiutil_jar OUTPUT_NAME wpiHal GENERATE_NATIVE_HEADERS hal_jni_headers) - endif() + add_jar(hal_jar ${JAVA_SOURCES} INCLUDE_JARS wpiutil_jar OUTPUT_NAME wpiHal GENERATE_NATIVE_HEADERS hal_jni_headers) get_property(HAL_JAR_FILE TARGET hal_jar PROPERTY JAR_FILE) install(FILES ${HAL_JAR_FILE} DESTINATION "${java_lib_dest}") @@ -110,12 +105,7 @@ if (WITH_JAVA) set_property(TARGET haljni PROPERTY FOLDER "libraries") - if(${CMAKE_VERSION} VERSION_LESS "3.11.0") - target_include_directories(haljni PRIVATE ${JNI_INCLUDE_DIRS}) - target_include_directories(haljni PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/jniheaders") - else() - target_link_libraries(haljni PRIVATE hal_jni_headers) - endif() + target_link_libraries(haljni PRIVATE hal_jni_headers) add_dependencies(haljni hal_jar) if (MSVC) diff --git a/ntcore/CMakeLists.txt b/ntcore/CMakeLists.txt index cd4df28c61..cd5b3fb7d5 100644 --- a/ntcore/CMakeLists.txt +++ b/ntcore/CMakeLists.txt @@ -61,12 +61,7 @@ if (WITH_JAVA) file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java ${WPILIB_BINARY_DIR}/ntcore/generated/*.java) set(CMAKE_JNI_TARGET true) - if(${CMAKE_VERSION} VERSION_LESS "3.11.0") - set(CMAKE_JAVA_COMPILE_FLAGS "-h" "${CMAKE_CURRENT_BINARY_DIR}/jniheaders") - add_jar(ntcore_jar ${JAVA_SOURCES} INCLUDE_JARS wpiutil_jar OUTPUT_NAME ntcore) - else() - add_jar(ntcore_jar ${JAVA_SOURCES} INCLUDE_JARS wpiutil_jar OUTPUT_NAME ntcore GENERATE_NATIVE_HEADERS ntcore_jni_headers) - endif() + add_jar(ntcore_jar ${JAVA_SOURCES} INCLUDE_JARS wpiutil_jar OUTPUT_NAME ntcore GENERATE_NATIVE_HEADERS ntcore_jni_headers) get_property(NTCORE_JAR_FILE TARGET ntcore_jar PROPERTY JAR_FILE) install(FILES ${NTCORE_JAR_FILE} DESTINATION "${java_lib_dest}") @@ -83,12 +78,7 @@ if (WITH_JAVA) install(TARGETS ntcorejni RUNTIME DESTINATION "${jni_lib_dest}" COMPONENT Runtime) endif() - if(${CMAKE_VERSION} VERSION_LESS "3.11.0") - target_include_directories(ntcorejni PRIVATE ${JNI_INCLUDE_DIRS}) - target_include_directories(ntcorejni PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/jniheaders") - else() - target_link_libraries(ntcorejni PRIVATE ntcore_jni_headers) - endif() + target_link_libraries(ntcorejni PRIVATE ntcore_jni_headers) add_dependencies(ntcorejni ntcore_jar) install(TARGETS ntcorejni EXPORT ntcorejni DESTINATION "${main_lib_dest}") diff --git a/wpimath/CMakeLists.txt b/wpimath/CMakeLists.txt index 9648af2b9f..01fd5d0f8e 100644 --- a/wpimath/CMakeLists.txt +++ b/wpimath/CMakeLists.txt @@ -55,12 +55,7 @@ if (WITH_JAVA) file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java ${WPILIB_BINARY_DIR}/wpimath/generated/*.java) - if(${CMAKE_VERSION} VERSION_LESS "3.11.0") - set(CMAKE_JAVA_COMPILE_FLAGS "-h" "${CMAKE_CURRENT_BINARY_DIR}/jniheaders") - add_jar(wpimath_jar ${JAVA_SOURCES} INCLUDE_JARS ${EJML_JARS} wpiutil_jar OUTPUT_NAME wpimath) - else() - add_jar(wpimath_jar ${JAVA_SOURCES} INCLUDE_JARS ${EJML_JARS} wpiutil_jar OUTPUT_NAME wpimath GENERATE_NATIVE_HEADERS wpimath_jni_headers) - endif() + add_jar(wpimath_jar ${JAVA_SOURCES} INCLUDE_JARS ${EJML_JARS} wpiutil_jar OUTPUT_NAME wpimath GENERATE_NATIVE_HEADERS wpimath_jni_headers) get_property(WPIMATH_JAR_FILE TARGET wpimath_jar PROPERTY JAR_FILE) install(FILES ${WPIMATH_JAR_FILE} DESTINATION "${java_lib_dest}") @@ -73,12 +68,7 @@ if (WITH_JAVA) set_property(TARGET wpimathjni PROPERTY FOLDER "libraries") - if(${CMAKE_VERSION} VERSION_LESS "3.11.0") - target_include_directories(wpimathjni PRIVATE ${JNI_INCLUDE_DIRS}) - target_include_directories(wpimathjni PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/jniheaders") - else() - target_link_libraries(wpimathjni PRIVATE wpimath_jni_headers) - endif() + target_link_libraries(wpimathjni PRIVATE wpimath_jni_headers) add_dependencies(wpimathjni wpimath_jar) if (MSVC) diff --git a/wpinet/CMakeLists.txt b/wpinet/CMakeLists.txt index a11ca98481..6d92a56402 100644 --- a/wpinet/CMakeLists.txt +++ b/wpinet/CMakeLists.txt @@ -18,12 +18,7 @@ if (WITH_JAVA) file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java) - if(${CMAKE_VERSION} VERSION_LESS "3.11.0") - set(CMAKE_JAVA_COMPILE_FLAGS "-h" "${CMAKE_CURRENT_BINARY_DIR}/jniheaders") - add_jar(wpinet_jar ${JAVA_SOURCES} INCLUDE_JARS wpiutil_jar OUTPUT_NAME wpinet) - else() - add_jar(wpinet_jar ${JAVA_SOURCES} INCLUDE_JARS wpiutil_jar OUTPUT_NAME wpinet GENERATE_NATIVE_HEADERS wpinet_jni_headers) - endif() + add_jar(wpinet_jar ${JAVA_SOURCES} INCLUDE_JARS wpiutil_jar OUTPUT_NAME wpinet GENERATE_NATIVE_HEADERS wpinet_jni_headers) get_property(WPINET_JAR_FILE TARGET wpinet_jar PROPERTY JAR_FILE) install(FILES ${WPINET_JAR_FILE} DESTINATION "${java_lib_dest}") @@ -36,12 +31,7 @@ if (WITH_JAVA) set_property(TARGET wpinetjni PROPERTY FOLDER "libraries") - if(${CMAKE_VERSION} VERSION_LESS "3.11.0") - target_include_directories(wpinetjni PRIVATE ${JNI_INCLUDE_DIRS}) - target_include_directories(wpinetjni PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/jniheaders") - else() - target_link_libraries(wpinetjni PRIVATE wpinet_jni_headers) - endif() + target_link_libraries(wpinetjni PRIVATE wpinet_jni_headers) add_dependencies(wpinetjni wpinet_jar) if (MSVC) diff --git a/wpiutil/CMakeLists.txt b/wpiutil/CMakeLists.txt index 8deec27abc..5db2b4c658 100644 --- a/wpiutil/CMakeLists.txt +++ b/wpiutil/CMakeLists.txt @@ -39,12 +39,7 @@ if (WITH_JAVA) file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java) - if(${CMAKE_VERSION} VERSION_LESS "3.11.0") - set(CMAKE_JAVA_COMPILE_FLAGS "-h" "${CMAKE_CURRENT_BINARY_DIR}/jniheaders") - add_jar(wpiutil_jar ${JAVA_SOURCES} INCLUDE_JARS ${JACKSON_JARS} OUTPUT_NAME wpiutil) - else() - add_jar(wpiutil_jar ${JAVA_SOURCES} INCLUDE_JARS ${JACKSON_JARS} OUTPUT_NAME wpiutil GENERATE_NATIVE_HEADERS wpiutil_jni_headers) - endif() + add_jar(wpiutil_jar ${JAVA_SOURCES} INCLUDE_JARS ${JACKSON_JARS} OUTPUT_NAME wpiutil GENERATE_NATIVE_HEADERS wpiutil_jni_headers) get_property(WPIUTIL_JAR_FILE TARGET wpiutil_jar PROPERTY JAR_FILE) install(FILES ${WPIUTIL_JAR_FILE} DESTINATION "${java_lib_dest}") @@ -57,12 +52,7 @@ if (WITH_JAVA) set_property(TARGET wpiutiljni PROPERTY FOLDER "libraries") - if(${CMAKE_VERSION} VERSION_LESS "3.11.0") - target_include_directories(wpiutiljni PRIVATE ${JNI_INCLUDE_DIRS}) - target_include_directories(wpiutiljni PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/jniheaders") - else() - target_link_libraries(wpiutiljni PRIVATE wpiutil_jni_headers) - endif() + target_link_libraries(wpiutiljni PRIVATE wpiutil_jni_headers) add_dependencies(wpiutiljni wpiutil_jar) if (MSVC)