2018-07-25 23:28:50 +08:00
|
|
|
@echo off
|
2023-10-31 18:24:22 +08:00
|
|
|
setlocal enabledelayedexpansion
|
2018-07-25 21:42:02 +08:00
|
|
|
|
2018-07-31 22:35:02 +08:00
|
|
|
rem BAT script that downloads and generates
|
|
|
|
rem rpclib, gtest and boost libraries for CARLA (carla.org).
|
|
|
|
rem Run it through a cmd with the x64 Visual C++ Toolset enabled.
|
|
|
|
|
|
|
|
set LOCAL_PATH=%~dp0
|
2020-06-16 21:26:43 +08:00
|
|
|
set FILE_N=-[%~n0]:
|
2018-07-31 22:35:02 +08:00
|
|
|
|
2018-08-29 18:24:30 +08:00
|
|
|
rem Print batch params (debug purpose)
|
|
|
|
echo %FILE_N% [Batch params]: %*
|
|
|
|
|
2018-07-25 21:42:02 +08:00
|
|
|
rem ============================================================================
|
|
|
|
rem -- Check for compiler ------------------------------------------------------
|
|
|
|
rem ============================================================================
|
|
|
|
|
2018-08-30 20:18:53 +08:00
|
|
|
where cl 1>nul
|
2018-07-31 22:35:02 +08:00
|
|
|
if %errorlevel% neq 0 goto error_cl
|
2018-07-25 21:42:02 +08:00
|
|
|
|
|
|
|
rem TODO: check for x64 and not x86 or x64_x86
|
|
|
|
|
|
|
|
rem ============================================================================
|
|
|
|
rem -- Parse arguments ---------------------------------------------------------
|
|
|
|
rem ============================================================================
|
|
|
|
|
2022-12-19 21:09:25 +08:00
|
|
|
set BOOST_VERSION=1.80.0
|
2020-06-16 21:26:43 +08:00
|
|
|
set INSTALLERS_DIR=%ROOT_PATH:/=\%Util\InstallersWin\
|
|
|
|
set VERSION_FILE=%ROOT_PATH:/=\%Util\ContentVersions.txt
|
|
|
|
set CONTENT_DIR=%ROOT_PATH:/=\%Unreal\CarlaUE4\Content\Carla\
|
2021-01-29 23:57:40 +08:00
|
|
|
set CARLA_DEPENDENCIES_FOLDER=%ROOT_PATH:/=\%Unreal\CarlaUE4\Plugins\Carla\CarlaDependencies\
|
2021-02-02 23:00:07 +08:00
|
|
|
set CARLA_BINARIES_FOLDER=%ROOT_PATH:/=\%Unreal\CarlaUE4\Plugins\Carla\Binaries\Win64
|
2021-02-18 22:59:26 +08:00
|
|
|
set CARLA_PYTHON_DEPENDENCIES=%ROOT_PATH:/=\%PythonAPI\carla\dependencies\
|
2021-01-29 23:57:40 +08:00
|
|
|
set USE_CHRONO=false
|
2023-11-06 19:34:07 +08:00
|
|
|
set USE_ROS2=false
|
2018-07-25 23:28:50 +08:00
|
|
|
|
2018-07-25 21:42:02 +08:00
|
|
|
:arg-parse
|
|
|
|
if not "%1"=="" (
|
|
|
|
if "%1"=="-j" (
|
|
|
|
set NUMBER_OF_ASYNC_JOBS=%2
|
|
|
|
)
|
|
|
|
if "%1"=="--boost-toolset" (
|
|
|
|
set TOOLSET=%2
|
|
|
|
)
|
2021-01-29 23:57:40 +08:00
|
|
|
if "%1"=="--chrono" (
|
|
|
|
set USE_CHRONO=true
|
|
|
|
)
|
2023-11-06 19:34:07 +08:00
|
|
|
if "%1"=="--ros2" (
|
|
|
|
set USE_ROS2=true
|
|
|
|
)
|
2023-09-17 13:00:35 +08:00
|
|
|
if "%1" == "--generator" (
|
|
|
|
set GENERATOR=%2
|
|
|
|
shift
|
|
|
|
)
|
2018-07-25 21:42:02 +08:00
|
|
|
if "%1"=="-h" (
|
|
|
|
goto help
|
|
|
|
)
|
|
|
|
if "%1"=="--help" (
|
|
|
|
goto help
|
|
|
|
)
|
2023-10-31 18:24:22 +08:00
|
|
|
|
2018-07-25 21:42:02 +08:00
|
|
|
shift
|
|
|
|
goto :arg-parse
|
|
|
|
)
|
|
|
|
|
2021-07-13 22:43:08 +08:00
|
|
|
rem If not defined, use Visual Studio 2019 as tool set
|
|
|
|
if "%TOOLSET%" == "" set TOOLSET=msvc-14.2
|
2023-09-17 13:00:35 +08:00
|
|
|
if %GENERATOR% == "" set GENERATOR="Visual Studio 16 2019"
|
2019-02-06 00:33:09 +08:00
|
|
|
|
|
|
|
rem If is not set, set the number of parallel jobs to the number of CPU threads
|
2020-06-16 21:26:43 +08:00
|
|
|
if "%NUMBER_OF_ASYNC_JOBS%" == "" set NUMBER_OF_ASYNC_JOBS=%NUMBER_OF_PROCESSORS%
|
2019-02-06 00:33:09 +08:00
|
|
|
|
2018-07-25 21:42:02 +08:00
|
|
|
rem ============================================================================
|
|
|
|
rem -- Basic info and setup ----------------------------------------------------
|
|
|
|
rem ============================================================================
|
|
|
|
|
2019-02-11 22:29:18 +08:00
|
|
|
set INSTALLATION_DIR=%INSTALLATION_DIR:/=\%
|
|
|
|
|
2018-07-25 21:42:02 +08:00
|
|
|
echo %FILE_N% Asynchronous jobs: %NUMBER_OF_ASYNC_JOBS%
|
|
|
|
echo %FILE_N% Boost toolset: %TOOLSET%
|
2023-09-17 13:00:35 +08:00
|
|
|
echo %FILE_N% Generator: %GENERATOR%
|
2018-07-27 22:16:58 +08:00
|
|
|
echo %FILE_N% Install directory: "%INSTALLATION_DIR%"
|
2018-07-25 21:42:02 +08:00
|
|
|
|
|
|
|
if not exist "%CONTENT_DIR%" (
|
2018-07-27 22:16:58 +08:00
|
|
|
echo %FILE_N% Creating "%CONTENT_DIR%" folder...
|
2018-08-02 22:10:46 +08:00
|
|
|
mkdir "%CONTENT_DIR%"
|
2018-07-25 21:42:02 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
if not exist "%INSTALLATION_DIR%" (
|
2018-07-27 22:16:58 +08:00
|
|
|
echo %FILE_N% Creating "%INSTALLATION_DIR%" folder...
|
|
|
|
mkdir "%INSTALLATION_DIR%"
|
2018-07-25 21:42:02 +08:00
|
|
|
)
|
|
|
|
|
2019-02-08 21:38:12 +08:00
|
|
|
rem ============================================================================
|
|
|
|
rem -- Download and install zlib -----------------------------------------------
|
|
|
|
rem ============================================================================
|
|
|
|
|
|
|
|
echo %FILE_N% Installing zlib...
|
|
|
|
call "%INSTALLERS_DIR%install_zlib.bat"^
|
|
|
|
--build-dir "%INSTALLATION_DIR%"
|
|
|
|
|
|
|
|
if %errorlevel% neq 0 goto failed
|
|
|
|
|
|
|
|
if not defined install_zlib (
|
|
|
|
echo %FILE_N% Failed while installing zlib.
|
|
|
|
goto failed
|
2019-02-09 00:39:55 +08:00
|
|
|
) else (
|
2020-06-16 21:26:43 +08:00
|
|
|
set ZLIB_INSTALL_DIR=%install_zlib%
|
2019-02-08 21:38:12 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
rem ============================================================================
|
2019-02-09 00:39:55 +08:00
|
|
|
rem -- Download and install libpng ---------------------------------------------
|
2019-02-08 21:38:12 +08:00
|
|
|
rem ============================================================================
|
|
|
|
|
|
|
|
echo %FILE_N% Installing libpng...
|
|
|
|
call "%INSTALLERS_DIR%install_libpng.bat"^
|
|
|
|
--build-dir "%INSTALLATION_DIR%"^
|
2020-06-16 21:26:43 +08:00
|
|
|
--zlib-install-dir "%ZLIB_INSTALL_DIR%"
|
2019-02-08 21:38:12 +08:00
|
|
|
|
|
|
|
if %errorlevel% neq 0 goto failed
|
|
|
|
|
|
|
|
if not defined install_libpng (
|
|
|
|
echo %FILE_N% Failed while installing libpng.
|
|
|
|
goto failed
|
2019-02-09 00:39:55 +08:00
|
|
|
) else (
|
2020-06-16 21:26:43 +08:00
|
|
|
set LIBPNG_INSTALL_DIR=%install_libpng%
|
2019-02-08 21:38:12 +08:00
|
|
|
)
|
|
|
|
|
2018-07-25 21:42:02 +08:00
|
|
|
rem ============================================================================
|
|
|
|
rem -- Download and install rpclib ---------------------------------------------
|
|
|
|
rem ============================================================================
|
|
|
|
|
|
|
|
echo %FILE_N% Installing rpclib...
|
2018-07-27 22:16:58 +08:00
|
|
|
call "%INSTALLERS_DIR%install_rpclib.bat"^
|
2023-09-17 13:00:35 +08:00
|
|
|
--build-dir "%INSTALLATION_DIR%"^
|
|
|
|
--generator %GENERATOR%
|
2018-07-27 22:16:58 +08:00
|
|
|
|
|
|
|
if %errorlevel% neq 0 goto failed
|
2018-07-25 21:42:02 +08:00
|
|
|
|
|
|
|
if not defined install_rpclib (
|
|
|
|
echo %FILE_N% Failed while installing rpclib.
|
|
|
|
goto failed
|
|
|
|
)
|
|
|
|
|
|
|
|
rem ============================================================================
|
|
|
|
rem -- Download and install Google Test ----------------------------------------
|
|
|
|
rem ============================================================================
|
|
|
|
|
|
|
|
echo %FILE_N% Installing Google Test...
|
2018-07-27 22:16:58 +08:00
|
|
|
call "%INSTALLERS_DIR%install_gtest.bat"^
|
2023-09-17 13:00:35 +08:00
|
|
|
--build-dir "%INSTALLATION_DIR%"^
|
|
|
|
--generator %GENERATOR%
|
2018-07-27 22:16:58 +08:00
|
|
|
|
|
|
|
if %errorlevel% neq 0 goto failed
|
2018-07-25 21:42:02 +08:00
|
|
|
|
|
|
|
if not defined install_gtest (
|
2018-08-30 18:18:07 +08:00
|
|
|
|
2018-07-25 21:42:02 +08:00
|
|
|
echo %FILE_N% Failed while installing Google Test.
|
|
|
|
goto failed
|
|
|
|
)
|
|
|
|
|
2019-06-06 05:33:46 +08:00
|
|
|
rem ============================================================================
|
|
|
|
rem -- Download and install Recast & Detour ------------------------------------
|
|
|
|
rem ============================================================================
|
|
|
|
|
|
|
|
echo %FILE_N% Installing "Recast & Detour"...
|
|
|
|
call "%INSTALLERS_DIR%install_recast.bat"^
|
2023-09-17 13:00:35 +08:00
|
|
|
--build-dir "%INSTALLATION_DIR%"^
|
|
|
|
--generator %GENERATOR%
|
2019-06-06 05:33:46 +08:00
|
|
|
|
|
|
|
if %errorlevel% neq 0 goto failed
|
|
|
|
|
|
|
|
if not defined install_recast (
|
|
|
|
|
|
|
|
echo %FILE_N% Failed while installing "Recast & Detour".
|
|
|
|
goto failed
|
2019-06-13 18:30:21 +08:00
|
|
|
) else (
|
|
|
|
set RECAST_INSTALL_DIR=%install_recast:\=/%
|
2019-06-06 05:33:46 +08:00
|
|
|
)
|
|
|
|
|
2023-11-06 19:34:07 +08:00
|
|
|
rem ============================================================================
|
|
|
|
rem -- Download and install Fast-DDS (for ROS2)---------------------------------
|
|
|
|
rem ============================================================================
|
|
|
|
|
|
|
|
if %USE_ROS2% == true (
|
|
|
|
echo %FILE_N% Installing "Fast-DDS"...
|
|
|
|
call "%INSTALLERS_DIR%install_fastDDS.bat"^
|
|
|
|
--build-dir "%INSTALLATION_DIR%"
|
|
|
|
|
|
|
|
if %errorlevel% neq 0 goto failed
|
|
|
|
|
|
|
|
if not defined install_dds (
|
|
|
|
|
|
|
|
echo %FILE_N% Failed while installing "Fast-DDS".
|
|
|
|
goto failed
|
|
|
|
) else (
|
|
|
|
set FASTDDS_INSTALL_DIR=%install_dds:\=/%
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
2018-07-25 21:42:02 +08:00
|
|
|
rem ============================================================================
|
|
|
|
rem -- Download and install Boost ----------------------------------------------
|
|
|
|
rem ============================================================================
|
|
|
|
|
|
|
|
echo %FILE_N% Installing Boost...
|
2018-07-27 22:16:58 +08:00
|
|
|
call "%INSTALLERS_DIR%install_boost.bat"^
|
2019-02-06 00:33:09 +08:00
|
|
|
--build-dir "%INSTALLATION_DIR%"^
|
|
|
|
--toolset %TOOLSET%^
|
|
|
|
--version %BOOST_VERSION%^
|
|
|
|
-j %NUMBER_OF_ASYNC_JOBS%
|
2018-07-27 22:16:58 +08:00
|
|
|
|
|
|
|
if %errorlevel% neq 0 goto failed
|
2018-07-25 21:42:02 +08:00
|
|
|
|
|
|
|
if not defined install_boost (
|
|
|
|
echo %FILE_N% Failed while installing Boost.
|
|
|
|
goto failed
|
|
|
|
)
|
2020-02-05 18:43:16 +08:00
|
|
|
|
2018-07-25 21:42:02 +08:00
|
|
|
rem ============================================================================
|
2021-02-18 22:59:26 +08:00
|
|
|
rem -- Download and install Xercesc --------------------------------------------
|
2020-07-27 17:18:15 +08:00
|
|
|
rem ============================================================================
|
|
|
|
|
|
|
|
echo %FILE_N% Installing Xercesc...
|
|
|
|
call "%INSTALLERS_DIR%install_xercesc.bat"^
|
2023-09-17 13:00:35 +08:00
|
|
|
--build-dir "%INSTALLATION_DIR%"^
|
|
|
|
--generator %GENERATOR%
|
2021-03-18 16:16:37 +08:00
|
|
|
copy %INSTALLATION_DIR%\xerces-c-3.2.3-install\lib\xerces-c_3.lib %CARLA_PYTHON_DEPENDENCIES%\lib
|
2023-02-15 16:50:55 +08:00
|
|
|
copy %INSTALLATION_DIR%\xerces-c-3.2.3-install\lib\xerces-c_3.lib %CARLA_DEPENDENCIES_FOLDER%\lib
|
2021-01-29 23:57:40 +08:00
|
|
|
|
2021-02-18 22:59:26 +08:00
|
|
|
rem ============================================================================
|
|
|
|
rem -- Download and install Sqlite3 --------------------------------------------
|
|
|
|
rem ============================================================================
|
|
|
|
echo %FILE_N% Installing Sqlite3
|
|
|
|
call "%INSTALLERS_DIR%install_sqlite3.bat"^
|
|
|
|
--build-dir "%INSTALLATION_DIR%"
|
|
|
|
copy %INSTALLATION_DIR%\sqlite3-install\lib\sqlite3.lib %CARLA_PYTHON_DEPENDENCIES%\lib
|
2023-02-15 16:50:55 +08:00
|
|
|
copy %INSTALLATION_DIR%\sqlite3-install\lib\sqlite3.lib %CARLA_DEPENDENCIES_FOLDER%\lib
|
2021-02-18 22:59:26 +08:00
|
|
|
|
|
|
|
rem ============================================================================
|
|
|
|
rem -- Download and install PROJ --------------------------------------------
|
|
|
|
rem ============================================================================
|
|
|
|
|
|
|
|
echo %FILE_N% Installing PROJ
|
|
|
|
call "%INSTALLERS_DIR%install_proj.bat"^
|
2023-09-17 13:00:35 +08:00
|
|
|
--build-dir "%INSTALLATION_DIR%"^
|
|
|
|
--generator %GENERATOR%
|
2021-02-18 22:59:26 +08:00
|
|
|
copy %INSTALLATION_DIR%\proj-install\lib\proj.lib %CARLA_PYTHON_DEPENDENCIES%\lib
|
2023-02-15 16:50:55 +08:00
|
|
|
copy %INSTALLATION_DIR%\proj-install\lib\proj.lib %CARLA_DEPENDENCIES_FOLDER%\lib
|
2021-02-18 22:59:26 +08:00
|
|
|
|
2022-06-02 20:35:42 +08:00
|
|
|
rem ============================================================================
|
|
|
|
rem -- Download and install Eigen ----------------------------------------------
|
|
|
|
rem ============================================================================
|
|
|
|
|
|
|
|
echo %FILE_N% Installing Eigen
|
|
|
|
call "%INSTALLERS_DIR%install_eigen.bat"^
|
|
|
|
--build-dir "%INSTALLATION_DIR%"
|
|
|
|
xcopy /Y /S /I "%INSTALLATION_DIR%eigen-install\include\*" "%CARLA_DEPENDENCIES_FOLDER%include\*" > NUL
|
|
|
|
|
2021-01-29 23:57:40 +08:00
|
|
|
rem ============================================================================
|
|
|
|
rem -- Download and install Chrono ----------------------------------------------
|
|
|
|
rem ============================================================================
|
|
|
|
|
|
|
|
if %USE_CHRONO% == true (
|
|
|
|
echo %FILE_N% Installing Chrono...
|
|
|
|
call "%INSTALLERS_DIR%install_chrono.bat"^
|
2023-09-17 13:00:35 +08:00
|
|
|
--build-dir "%INSTALLATION_DIR%" ^
|
|
|
|
--generator %GENERATOR%
|
2021-01-29 23:57:40 +08:00
|
|
|
|
|
|
|
if not exist "%CARLA_DEPENDENCIES_FOLDER%" (
|
|
|
|
mkdir "%CARLA_DEPENDENCIES_FOLDER%"
|
|
|
|
)
|
|
|
|
if not exist "%CARLA_DEPENDENCIES_FOLDER%include" (
|
|
|
|
mkdir "%CARLA_DEPENDENCIES_FOLDER%include"
|
|
|
|
)
|
|
|
|
if not exist "%CARLA_DEPENDENCIES_FOLDER%lib" (
|
|
|
|
mkdir "%CARLA_DEPENDENCIES_FOLDER%lib"
|
|
|
|
)
|
|
|
|
if not exist "%CARLA_DEPENDENCIES_FOLDER%dll" (
|
|
|
|
mkdir "%CARLA_DEPENDENCIES_FOLDER%dll"
|
|
|
|
)
|
2021-01-31 06:55:49 +08:00
|
|
|
echo "%INSTALLATION_DIR%chrono-install\include\*" "%CARLA_DEPENDENCIES_FOLDER%include\*" > NUL
|
|
|
|
xcopy /Y /S /I "%INSTALLATION_DIR%chrono-install\include\*" "%CARLA_DEPENDENCIES_FOLDER%include\*" > NUL
|
|
|
|
copy "%INSTALLATION_DIR%chrono-install\lib\*.lib" "%CARLA_DEPENDENCIES_FOLDER%lib\*.lib" > NUL
|
|
|
|
copy "%INSTALLATION_DIR%chrono-install\bin\*.dll" "%CARLA_DEPENDENCIES_FOLDER%dll\*.dll" > NUL
|
|
|
|
xcopy /Y /S /I "%INSTALLATION_DIR%eigen-install\include\*" "%CARLA_DEPENDENCIES_FOLDER%include\*" > NUL
|
2021-01-29 23:57:40 +08:00
|
|
|
)
|
2020-07-27 17:18:15 +08:00
|
|
|
|
2023-11-06 19:34:07 +08:00
|
|
|
REM ==============================================================================
|
|
|
|
REM -- Download Fast DDS and dependencies ----------------------------------------
|
|
|
|
REM ==============================================================================
|
|
|
|
|
|
|
|
SET FASTDDS_BASENAME=fast-dds
|
|
|
|
SET FASTDDS_INSTALL_DIR=%CD%\%FASTDDS_BASENAME%-install
|
|
|
|
SET FASTDDS_INCLUDE=%FASTDDS_INSTALL_DIR%\include
|
|
|
|
SET FASTDDS_LIB=%FASTDDS_INSTALL_DIR%\lib
|
|
|
|
IF "%USE_ROS2%"=="true" (
|
|
|
|
|
|
|
|
:build_fastdds_extension
|
|
|
|
SET LIB_SOURCE=%1
|
|
|
|
SET LIB_REPO=%2
|
|
|
|
SET CMAKE_FLAGS=%3
|
|
|
|
|
|
|
|
IF NOT EXIST "%LIB_SOURCE%" (
|
|
|
|
mkdir "%LIB_SOURCE%"
|
|
|
|
echo %LIB_REPO%
|
|
|
|
git clone %LIB_REPO% %LIB_SOURCE%
|
|
|
|
mkdir "%LIB_SOURCE%\build"
|
|
|
|
)
|
|
|
|
|
|
|
|
IF NOT EXIST "%FASTDDS_INSTALL_DIR%" (
|
|
|
|
mkdir "%FASTDDS_INSTALL_DIR%"
|
|
|
|
echo Build foonathan memory vendor
|
|
|
|
SET FOONATHAN_MEMORY_VENDOR_BASENAME=foonathan-memory-vendor
|
|
|
|
SET FOONATHAN_MEMORY_VENDOR_SOURCE_DIR=%CD%\%FOONATHAN_MEMORY_VENDOR_BASENAME%-source
|
|
|
|
SET FOONATHAN_MEMORY_VENDOR_REPO="https://github.com/eProsima/foonathan_memory_vendor.git"
|
|
|
|
SET FOONATHAN_MEMORY_VENDOR_CMAKE_FLAGS=-DBUILD_SHARED_LIBS=ON
|
|
|
|
CALL :build_fastdds_extension "%FOONATHAN_MEMORY_VENDOR_SOURCE_DIR%" "%FOONATHAN_MEMORY_VENDOR_REPO%"
|
|
|
|
pushd "%FOONATHAN_MEMORY_VENDOR_SOURCE_DIR%\build" >nul
|
|
|
|
cmake -G "Ninja" ^
|
|
|
|
-DCMAKE_INSTALL_PREFIX="%FASTDDS_INSTALL_DIR%" ^
|
|
|
|
-DBUILD_SHARED_LIBS=ON ^
|
|
|
|
-DCMAKE_CXX_FLAGS_RELEASE="-D_GLIBCXX_USE_CXX11_ABI=0" ^
|
|
|
|
..
|
|
|
|
ninja
|
|
|
|
ninja install
|
|
|
|
popd >nul
|
|
|
|
rmdir /s /q "%FOONATHAN_MEMORY_VENDOR_SOURCE_DIR%"
|
|
|
|
|
|
|
|
echo Build fast cdr
|
|
|
|
SET FAST_CDR_BASENAME=fast-cdr
|
|
|
|
SET FAST_CDR_SOURCE_DIR=%CD%\%FAST_CDR_BASENAME%-source
|
|
|
|
SET FAST_CDR_REPO="https://github.com/eProsima/Fast-CDR.git"
|
|
|
|
CALL :build_fastdds_extension "%FAST_CDR_SOURCE_DIR%" "%FAST_CDR_REPO%"
|
|
|
|
pushd "%FAST_CDR_SOURCE_DIR%\build" >nul
|
|
|
|
cmake -G "Ninja" ^
|
|
|
|
-DCMAKE_INSTALL_PREFIX="%FASTDDS_INSTALL_DIR%" ^
|
|
|
|
-DCMAKE_CXX_FLAGS_RELEASE="-D_GLIBCXX_USE_CXX11_ABI=0" ^
|
|
|
|
..
|
|
|
|
ninja
|
|
|
|
ninja install
|
|
|
|
popd >nul
|
|
|
|
rmdir /s /q "%FAST_CDR_SOURCE_DIR%"
|
|
|
|
|
|
|
|
echo Build fast dds
|
|
|
|
SET FAST_DDS_LIB_BASENAME=fast-dds-lib
|
|
|
|
SET FAST_DDS_LIB_SOURCE_DIR=%CD%\%FAST_DDS_LIB_BASENAME%-source
|
|
|
|
SET FAST_DDS_LIB_REPO="https://github.com/eProsima/Fast-DDS.git"
|
|
|
|
CALL :build_fastdds_extension "%FAST_DDS_LIB_SOURCE_DIR%" "%FAST_DDS_LIB_REPO%"
|
|
|
|
pushd "%FAST_DDS_LIB_SOURCE_DIR%\build" >nul
|
|
|
|
cmake -G "Ninja" ^
|
|
|
|
-DCMAKE_INSTALL_PREFIX="%FASTDDS_INSTALL_DIR%" ^
|
|
|
|
-DCMAKE_CXX_FLAGS=-latomic ^
|
|
|
|
-DCMAKE_CXX_FLAGS_RELEASE="-D_GLIBCXX_USE_CXX11_ABI=0" ^
|
|
|
|
..
|
|
|
|
ninja
|
|
|
|
ninja install
|
|
|
|
popd >nul
|
|
|
|
rmdir /
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
2020-07-27 17:18:15 +08:00
|
|
|
rem ============================================================================
|
2018-07-25 21:42:02 +08:00
|
|
|
rem -- Assets download URL -----------------------------------------------------
|
|
|
|
rem ============================================================================
|
|
|
|
|
2020-06-16 21:26:43 +08:00
|
|
|
FOR /F "usebackq tokens=1,2" %%i in ("%VERSION_FILE%") do (
|
2018-07-25 21:42:02 +08:00
|
|
|
set ASSETS_VERSION=%%i
|
2020-06-16 21:26:43 +08:00
|
|
|
set HASH=%%j
|
2018-07-25 21:42:02 +08:00
|
|
|
)
|
2024-01-30 19:42:08 +08:00
|
|
|
set URL=https://carla-assets.s3.us-east-005.backblazeb2.com/%HASH%.tar.gz
|
2018-07-25 21:42:02 +08:00
|
|
|
|
|
|
|
rem ============================================================================
|
|
|
|
rem -- Generate CMake ----------------------------------------------------------
|
|
|
|
rem ============================================================================
|
|
|
|
|
2018-07-25 23:28:50 +08:00
|
|
|
for /f %%i in ('git describe --tags --dirty --always') do set carla_version=%%i
|
2018-07-26 18:41:20 +08:00
|
|
|
set CMAKE_INSTALLATION_DIR=%INSTALLATION_DIR:\=/%
|
2018-07-25 23:28:50 +08:00
|
|
|
|
2019-02-09 00:39:55 +08:00
|
|
|
echo %FILE_N% Creating "CMakeLists.txt.in"...
|
|
|
|
|
2020-06-16 21:26:43 +08:00
|
|
|
set CMAKE_CONFIG_FILE=%INSTALLATION_DIR%CMakeLists.txt.in
|
2019-02-11 22:29:18 +08:00
|
|
|
|
|
|
|
>"%CMAKE_CONFIG_FILE%" echo # Automatically generated by Setup.bat
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo set(CARLA_VERSION %carla_version%)
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo.
|
2019-03-26 18:46:08 +08:00
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo set(CMAKE_CXX_STANDARD 14)
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo.
|
Doterop/traffic manager (#2468)
* Initial implementation of t.m. performance script
* Remove redundant getLocation() calls
* Demo for inter-client communication via Carla server
* WIP: To do: For client usage needed to be changed.
* Instead or client instance episodeProxy is passed to TM
* Instead or client instance episodeProxy is passed to TM
* parmeter improvements (walkers,cars,signs,lights)
* adding section id to map setup
* fix manual_control to reload car with autopilot on
* Instead of client instance episodeProxy is passed to TM.
* WIP: Only added vehicle register via RPC server / client call in TM to
local instance from remote instance. Similarly other APIs we need to
added.
* Added all TM APIs
* carla client now can provide TM instance if required.
* While getting TM instance if server given data is not valid new TM
instace is created. Need to decide what to do with earlier registed
vehicle with previous TM.
* Updated with HealthCheckRemoteTM() function to check TM server status
instead of ResetAllTrafficLights() for any new user client.
* Dynamic port selection added to TM server instace (in case of multiple
TM serve run, it required).
* Fixed change map error
* If registered TM at carla server is not present then remote TM should be
freed and new local TM instance is created.
* Created Process for Local TM.
It cheaks with total registered vehicles in it, if no register vehicles
for 5 sec, it closes it self.
In python spawn_npc.py Client Timeout set to 10 sec. as creating Process
is system dependent call and takes time.
User has to unregister vehicle before destroying it (if activated with
TM). Also neet to check TM unregister function to remove vehicles from
register list.
* Fix for collision ignore bug
* Update TM exit function check to compare registered vehicles with world
actors that if any valid vehicle present cointinue to run the TM else
stop.
* Print removal
* Splited work of main for loop in ApplyBatchCommandsSync
* WIP! Trying to get client directly
* WIP! Trying to access episode properly without getting it from TM ctr
* Changes to BatchControlStage for Sync Mode
Changes to Parameters for Synch Mode
* Added port support for TM. Multiclient MultiTM
* Added additions for RPC Synchronous Tick to TM.
Error handeling and code organization.
* Exposed API for Sync Mode
* TMServer notifies Server that it is gonna be destroyed
* Exposed Python API for Sync Mode
* Add TM as separate process and synchronous tick calls
* SetSynchronousModeTimeOutInMiliSecond method added
* TM shutsdown and informs to the connected clients
* WIP! Map change issues again
* Updated Traffic Manager for:
1) Multi-client, Multi-TM (as required) can be reistered to server.
2) TM is not a PROCESS separated from the user-client.
3) TM will exit if user-client exit.
4) If server closed, TM also get closed by catching runtime err.
* Server side changes ...
* Fixed possible stall on TM destruction
* fixing collision stage + cybertruck not safe
* Merge branch 'master' into 'soumyadeep/traffic_manager'
* WIP! Disconnection of server has to be properly handled by clients
* format update
* Fix bug unsignalized junctions
* # WARNING: head commit changed in the meantime
Merge branch 'doterop/traffic_manager' into soumyadeep/traffic_manager
Updates for Syncronized Tick.
* Updated runtime exception in Episode for smooth exit if TN server closed
for any other user client.
* Better Exception handeling
* Merged with jackbart94/tm_reduce_getloc_calls
* Merged soumyadeep/traffic_manager.
Removed World getter and recovered Episode as a parameter of TM ctr.
Fixed syntax errors.
* Initial implementation of t.m. performance script
* Remove redundant getLocation() calls
* Demo for inter-client communication via Carla server
* WIP: To do: For client usage needed to be changed.
* Instead or client instance episodeProxy is passed to TM
* Instead or client instance episodeProxy is passed to TM
* parmeter improvements (walkers,cars,signs,lights)
* fix manual_control to reload car with autopilot on
* Instead of client instance episodeProxy is passed to TM.
* WIP: Only added vehicle register via RPC server / client call in TM to
local instance from remote instance. Similarly other APIs we need to
added.
* Added all TM APIs
* carla client now can provide TM instance if required.
* While getting TM instance if server given data is not valid new TM
instace is created. Need to decide what to do with earlier registed
vehicle with previous TM.
* Updated with HealthCheckRemoteTM() function to check TM server status
instead of ResetAllTrafficLights() for any new user client.
* Dynamic port selection added to TM server instace (in case of multiple
TM serve run, it required).
* Fixed change map error
* If registered TM at carla server is not present then remote TM should be
freed and new local TM instance is created.
* Created Process for Local TM.
It cheaks with total registered vehicles in it, if no register vehicles
for 5 sec, it closes it self.
In python spawn_npc.py Client Timeout set to 10 sec. as creating Process
is system dependent call and takes time.
User has to unregister vehicle before destroying it (if activated with
TM). Also neet to check TM unregister function to remove vehicles from
register list.
* Fix for collision ignore bug
* Update TM exit function check to compare registered vehicles with world
actors that if any valid vehicle present cointinue to run the TM else
stop.
* Splited work of main for loop in ApplyBatchCommandsSync
* WIP! Trying to get client directly
* WIP! Trying to access episode properly without getting it from TM ctr
* Changes to BatchControlStage for Sync Mode
Changes to Parameters for Synch Mode
* Added port support for TM. Multiclient MultiTM
* Added additions for RPC Synchronous Tick to TM.
Error handeling and code organization.
* Exposed API for Sync Mode
* TMServer notifies Server that it is gonna be destroyed
* Exposed Python API for Sync Mode
* Add TM as separate process and synchronous tick calls
* SetSynchronousModeTimeOutInMiliSecond method added
* TM shutsdown and informs to the connected clients
* WIP! Map change issues again
* Updated Traffic Manager for:
1) Multi-client, Multi-TM (as required) can be reistered to server.
2) TM is not a PROCESS separated from the user-client.
3) TM will exit if user-client exit.
4) If server closed, TM also get closed by catching runtime err.
* Fixed possible stall on TM destruction
* fixing collision stage + cybertruck not safe
* Merge branch 'master' into 'soumyadeep/traffic_manager'
* WIP! Disconnection of server has to be properly handled by clients
* format update
* Fix bug unsignalized junctions
* # WARNING: head commit changed in the meantime
Merge branch 'doterop/traffic_manager' into soumyadeep/traffic_manager
Updates for Syncronized Tick.
* Updated runtime exception in Episode for smooth exit if TN server closed
for any other user client.
* Better Exception handeling
* Merged with jackbart94/tm_reduce_getloc_calls
* Merged soumyadeep/traffic_manager.
Removed World getter and recovered Episode as a parameter of TM ctr.
Fixed syntax errors.
* Rebased with master
* Changes after rebase
* Solving tab errors
* Updated Changelog
* Removing Destroyed vehicle's from TM Server
* Fixed uint compatibility with Windows
* Merged soumyadeep/traffic_manager. Discarded destroyed actors
* -Removed unnecessary files
* restoring docs from rebase
* Fix windows compilation
* refactoring stage-related code
* more code refactoring
* When map change the simulation doesn't throw exception anymore
* Fixed incorrect episode
* Fixed map change and TM remote detached thread destruction
* Syntax and comments fixes
* Missed change on previous commit
* Fixed compile minor compile issue
* Cleaned and fixed some issues after merge
* fix to sync localization bugs
modified PID parameters
revamping spawn_npc
* deleted tm_spawn_npc
* fixes spawn error in sync mode
* Redoing TM sync logic
* finished performance benchmark for tm
* deprecated wrapped methods:
register_vehicle
unregister_vehicle
* New TM management
* Fixed sync mode on TM
* Cleaned TM of prints and unussed functions
* collision stage checks for (0,0,0) to ignore.
in memory map has an # between keys to avoid possible mixup.
fixed spawn_npc with new sync mode
* changelog
* added more connection retries
* fixed changelog + comments (see reviewable)
* Moved socket include's to single header
* Added missing line at the end of the file
* Fixed syntax errors
* final commit
* Minor correction in comment
* update copyright year to 2020 + removed break
* restoring unwanted changes
* patch for smoke test error
* Removed "todo" for pylint
Co-authored-by: Jacopo Bartiromo <32928804+jackbart94@users.noreply.github.com>
Co-authored-by: Praveen Kumar <35625166+pravinblaze@users.noreply.github.com>
Co-authored-by: Soumyadeep <soumyadeep.dhar@kpit.com>
Co-authored-by: joel-mb <joel.moriana@gmail.com>
Co-authored-by: Sekhar Barua <58979936+sekhar2912@users.noreply.github.com>
Co-authored-by: bernat <bernatx@gmail.com>
Co-authored-by: Marc Garcia Puig <marcgpuig@gmail.com>
2020-02-29 02:58:13 +08:00
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo add_definitions(-D_WIN32_WINNT=0x0600)
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo add_definitions(-DHAVE_SNPRINTF)
|
2019-03-26 18:46:08 +08:00
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo STRING (REGEX REPLACE "/RTC(su|[1su])" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
2019-02-11 22:29:18 +08:00
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo.
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo add_definitions(-DBOOST_ERROR_CODE_HEADER_ONLY)
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo add_definitions(-DLIBCARLA_IMAGE_WITH_PNG_SUPPORT)
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo.
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo set(BOOST_INCLUDE_PATH "%CMAKE_INSTALLATION_DIR%boost-%BOOST_VERSION%-install/include")
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo set(BOOST_LIB_PATH "%CMAKE_INSTALLATION_DIR%boost-%BOOST_VERSION%-install/lib")
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo.
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo set(RPCLIB_INCLUDE_PATH "%CMAKE_INSTALLATION_DIR%rpclib-install/include")
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo set(RPCLIB_LIB_PATH "%CMAKE_INSTALLATION_DIR%rpclib-install/lib")
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo.
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo if (CMAKE_BUILD_TYPE STREQUAL "Server")
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo # Prevent exceptions
|
2021-02-18 22:59:26 +08:00
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo add_definitions(-DBOOST_TYPE_INDEX_FORCE_NO_RTTI_COMPATIBILITY)
|
2021-02-04 21:02:57 +08:00
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo add_compile_options(/EHsc)
|
2019-02-11 22:29:18 +08:00
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo add_definitions(-DASIO_NO_EXCEPTIONS)
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo add_definitions(-DBOOST_NO_EXCEPTIONS)
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo add_definitions(-DLIBCARLA_NO_EXCEPTIONS)
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo add_definitions(-DPUGIXML_NO_EXCEPTIONS)
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo # Specific libraries for server
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo set(GTEST_INCLUDE_PATH "%CMAKE_INSTALLATION_DIR%gtest-install/include")
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo set(GTEST_LIB_PATH "%CMAKE_INSTALLATION_DIR%gtest-install/lib")
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo elseif (CMAKE_BUILD_TYPE STREQUAL "Client")
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo # Specific libraries for client
|
2020-06-16 21:26:43 +08:00
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo set(ZLIB_INCLUDE_PATH "%ZLIB_INSTALL_DIR:\=/%/include")
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo set(ZLIB_LIB_PATH "%ZLIB_INSTALL_DIR:\=/%/lib")
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo set(LIBPNG_INCLUDE_PATH "%LIBPNG_INSTALL_DIR:\=/%/include")
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo set(LIBPNG_LIB_PATH "%LIBPNG_INSTALL_DIR:\=/%/lib")
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo set(RECAST_INCLUDE_PATH "%RECAST_INSTALL_DIR:\=/%/include")
|
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo set(RECAST_LIB_PATH "%RECAST_INSTALL_DIR:\=/%/lib")
|
2019-02-11 22:29:18 +08:00
|
|
|
>>"%CMAKE_CONFIG_FILE%" echo endif ()
|
2018-07-25 21:42:02 +08:00
|
|
|
|
|
|
|
goto success
|
|
|
|
|
|
|
|
rem ============================================================================
|
|
|
|
rem -- Messages and Errors -----------------------------------------------------
|
|
|
|
rem ============================================================================
|
|
|
|
|
|
|
|
:success
|
|
|
|
echo %FILE_N%
|
2018-07-31 22:35:02 +08:00
|
|
|
echo ###########
|
|
|
|
echo # SUCCESS #
|
|
|
|
echo ###########
|
2018-07-25 21:42:02 +08:00
|
|
|
echo.
|
2018-07-31 22:35:02 +08:00
|
|
|
echo IMPORTANT!
|
2018-07-25 21:42:02 +08:00
|
|
|
echo.
|
2018-07-31 22:35:02 +08:00
|
|
|
echo All the CARLA library dependences should be installed now.
|
|
|
|
echo (You can remove all "*-src" folders in %INSTALLATION_DIR% directory)
|
2018-07-25 21:42:02 +08:00
|
|
|
echo.
|
2018-07-31 22:35:02 +08:00
|
|
|
echo You only need the ASSET PACK with all the meshes and textures.
|
2018-07-25 21:42:02 +08:00
|
|
|
echo.
|
2018-07-31 22:35:02 +08:00
|
|
|
echo This script provides the assets for CARLA %ASSETS_VERSION%
|
|
|
|
echo You can download the assets from here:
|
2018-07-25 21:42:02 +08:00
|
|
|
echo.
|
2018-07-31 22:35:02 +08:00
|
|
|
echo %URL%
|
2018-07-25 21:42:02 +08:00
|
|
|
echo.
|
2018-07-31 22:35:02 +08:00
|
|
|
echo Unzip it in the "%CONTENT_DIR%" folder.
|
|
|
|
echo If you want another version, search it in %VERSION_FILE%.
|
2018-08-30 20:18:53 +08:00
|
|
|
echo.
|
2018-07-31 22:35:02 +08:00
|
|
|
goto good_exit
|
2018-07-25 21:42:02 +08:00
|
|
|
|
|
|
|
:help
|
|
|
|
echo Download and compiles all the necessary libraries to build CARLA.
|
|
|
|
echo.
|
|
|
|
echo Commands:
|
2018-07-31 22:35:02 +08:00
|
|
|
echo -h, --help -^> Shows this dialog.
|
|
|
|
echo -j ^<N^> -^> N is the integer number of async jobs while compiling (default=1).
|
|
|
|
echo --boost-toolset [T] -^> Toolset corresponding to your compiler ^(default=^*^):
|
2018-07-25 21:42:02 +08:00
|
|
|
echo Visual Studio 2013 -^> msvc-12.0
|
|
|
|
echo Visual Studio 2015 -^> msvc-14.0
|
2021-07-13 22:43:08 +08:00
|
|
|
echo Visual Studio 2017 -^> msvc-14.1
|
|
|
|
echo Visual Studio 2019 -^> msvc-14.2 *
|
2023-09-17 13:00:35 +08:00
|
|
|
echo Visual Studio 2022 -^> msvc-14.3
|
2018-07-31 22:35:02 +08:00
|
|
|
goto good_exit
|
2018-07-25 21:42:02 +08:00
|
|
|
|
|
|
|
:error_cl
|
|
|
|
echo.
|
2018-08-30 20:18:53 +08:00
|
|
|
echo %FILE_N% [ERROR] Can't find Visual Studio compiler (cl.exe).
|
|
|
|
echo [ERROR] Possible causes:
|
|
|
|
echo [ERROR] - Make sure you use x64 (not x64_x86!)
|
|
|
|
echo [ERROR] - You are not using "Visual Studio x64 Native Tools Command Prompt".
|
2018-07-25 21:42:02 +08:00
|
|
|
goto failed
|
|
|
|
|
|
|
|
:failed
|
|
|
|
echo.
|
|
|
|
echo %FILE_N%
|
2018-07-31 22:35:02 +08:00
|
|
|
echo Ok, and error ocurred, don't panic!
|
|
|
|
echo We have different platforms where you can find some help :)
|
2018-07-25 21:42:02 +08:00
|
|
|
echo.
|
2018-07-31 22:35:02 +08:00
|
|
|
echo - Make sure you have read the documentation:
|
|
|
|
echo http://carla.readthedocs.io/en/latest/how_to_build_on_windows/
|
2018-07-25 21:42:02 +08:00
|
|
|
echo.
|
2018-07-31 22:35:02 +08:00
|
|
|
echo - If the problem persists, you can ask on our Github's "Building on Windows" issue:
|
|
|
|
echo https://github.com/carla-simulator/carla/issues/21
|
2018-07-25 21:42:02 +08:00
|
|
|
echo.
|
2018-07-31 22:35:02 +08:00
|
|
|
echo - Or just use our Discord channel!
|
|
|
|
echo We'll be glad to help you there :)
|
|
|
|
echo https://discord.gg/42KJdRj
|
|
|
|
endlocal
|
|
|
|
exit /b %errorlevel%
|
2018-07-25 21:42:02 +08:00
|
|
|
|
2018-07-31 22:35:02 +08:00
|
|
|
:good_exit
|
2018-07-25 21:42:02 +08:00
|
|
|
endlocal
|
2018-07-31 22:35:02 +08:00
|
|
|
exit /b 0
|