Rename our allwpilib (which is now 2020) to not have 2019 in the name
Change-Id: I3c07f85ed32ab8b97db765a9b43f2a6ce7da964a
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..7a54492
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,136 @@
+# Disable in-source builds to prevent source tree corruption.
+if(" ${CMAKE_SOURCE_DIR}" STREQUAL " ${CMAKE_BINARY_DIR}")
+ message(FATAL_ERROR "
+FATAL: In-source builds are not allowed.
+ You should create a separate directory for build files.
+")
+endif()
+
+
+project(allwpilib)
+cmake_minimum_required(VERSION 3.3.0)
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules")
+
+INCLUDE(CPack)
+
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
+set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+
+if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND MSVC)
+ set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Default install dir on windows" FORCE)
+endif()
+
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
+set(CMAKE_JAVA_TARGET_OUTPUT_DIR ${CMAKE_BINARY_DIR}/jar)
+
+# use, i.e. don't skip the full RPATH for the build tree
+SET(CMAKE_SKIP_BUILD_RPATH FALSE)
+
+# when building, don't use the install RPATH already
+# (but later on when installing)
+SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
+
+SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/wpilib/lib")
+
+# add the automatically determined parts of the RPATH
+# which point to directories outside the build tree to the install RPATH
+SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+
+# the RPATH to be used when installing, but only if it's not a system directory
+LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/wpilib/lib" isSystemDir)
+IF("${isSystemDir}" STREQUAL "-1")
+ SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/wpilib/lib")
+ENDIF("${isSystemDir}" STREQUAL "-1")
+
+option(WITHOUT_JAVA "don't include java and JNI in the build" OFF)
+option(BUILD_SHARED_LIBS "build with shared libs (needed for JNI)" ON)
+option(WITHOUT_CSCORE "Don't build cscore (removes OpenCV requirement)" OFF)
+option(WITHOUT_ALLWPILIB "Don't build allwpilib (removes OpenCV requirement)" ON)
+option(WITH_TESTS "build unit tests (requires internet connection)" OFF)
+option(USE_EXTERNAL_HAL "Use a separately built HAL" OFF)
+set(EXTERNAL_HAL_FILE "" CACHE FILEPATH "Location to look for an external HAL CMake File")
+option(USE_VCPKG_LIBUV "Use vcpkg libuv" OFF)
+option(USE_VCPKG_EIGEN "Use vcpkg eigen" OFF)
+option(FLAT_INSTALL_WPILIB "Use a flat install directory" OFF)
+option(WITH_SIMULATION_MODULES "build simulation modules" OFF)
+
+if (NOT WITHOUT_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
+ WITHOUT_JAVA=ON
+")
+endif()
+
+set( wpilib_dest wpilib)
+set( include_dest wpilib/include )
+set( main_lib_dest wpilib/lib )
+set( java_lib_dest wpilib/java )
+set( jni_lib_dest wpilib/jni )
+
+if (MSVC OR FLAT_INSTALL_WPILIB)
+ set (wpilib_config_dir ${wpilib_dest})
+else()
+ set (wpilib_config_dir share/wpilib)
+endif()
+
+if (USE_VCPKG_LIBUV)
+set (LIBUV_VCPKG_REPLACE "find_package(unofficial-libuv CONFIG)")
+endif()
+
+if (USE_VCPKG_EIGEN)
+set (EIGEN_VCPKG_REPLACE "find_package(Eigen3 CONFIG)")
+endif()
+
+if (MSVC OR FLAT_INSTALL_WPILIB)
+set(WPIUTIL_DEP_REPLACE "include($\{SELF_DIR\}/wpiutil-config.cmake)")
+set(NTCORE_DEP_REPLACE "include($\{SELF_DIR\}/ntcore-config.cmake)")
+set(CSCORE_DEP_REPLACE_IMPL "include(\${SELF_DIR}/cscore-config.cmake)")
+set(CAMERASERVER_DEP_REPLACE_IMPL "include(\${SELF_DIR}/cameraserver-config.cmake)")
+set(HAL_DEP_REPLACE_IMPL "include(\${SELF_DIR}/hal-config.cmake)")
+set(WPILIBC_DEP_REPLACE_IMPL "include(\${SELF_DIR}/wpilibc-config.cmake)")
+else()
+set(WPIUTIL_DEP_REPLACE "find_dependency(wpiutil)")
+set(NTCORE_DEP_REPLACE "find_dependency(ntcore)")
+set(CSCORE_DEP_REPLACE_IMPL "find_dependency(cscore)")
+set(CAMERASERVER_DEP_REPLACE_IMPL "find_dependency(cameraserver)")
+set(HAL_DEP_REPLACE_IMPL "find_dependency(hal)")
+set(WPILIBC_DEP_REPLACE_IMPL "find_dependency(wpilibc)")
+endif()
+
+set(FILENAME_DEP_REPLACE "get_filename_component(SELF_DIR \"$\{CMAKE_CURRENT_LIST_FILE\}\" PATH)")
+set(SELF_DIR "$\{SELF_DIR\}")
+
+if (WITH_TESTS)
+ enable_testing()
+ add_subdirectory(googletest)
+ include(GoogleTest)
+endif()
+
+add_subdirectory(wpiutil)
+add_subdirectory(ntcore)
+
+if (NOT WITHOUT_CSCORE)
+ set(CSCORE_DEP_REPLACE ${CSCORE_DEP_REPLACE_IMPL})
+ set(CAMERASERVER_DEP_REPLACE ${CAMERASERVER_DEP_REPLACE_IMPL})
+ add_subdirectory(cscore)
+ add_subdirectory(cameraserver)
+ if (NOT WITHOUT_ALLWPILIB)
+ set(HAL_DEP_REPLACE ${HAL_DEP_REPLACE_IMPL})
+ set(WPILIBC_DEP_REPLACE ${WPILIBC_DEP_REPLACE_IMPL})
+ add_subdirectory(hal)
+ add_subdirectory(wpilibj)
+ add_subdirectory(wpilibc)
+ add_subdirectory(myRobot)
+ endif()
+endif()
+
+if (WITH_SIMULATION_MODULES AND NOT USE_EXTERNAL_HAL)
+ add_subdirectory(imgui)
+ add_subdirectory(simulation)
+endif()
+
+configure_file(wpilib-config.cmake.in ${CMAKE_BINARY_DIR}/wpilib-config.cmake )
+install(FILES ${CMAKE_BINARY_DIR}/wpilib-config.cmake DESTINATION ${wpilib_config_dir})