Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .clangd.in
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
CompileFlags:
CompilationDatabase: "@CMAKE_CURRENT_BINARY_DIR@"
CompilationDatabase: "@CMAKE_BINARY_DIR@"
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
__pycache__/

Build/
Install/
Doxygen/
Dist/
Temp/
Expand All @@ -15,3 +14,4 @@ CMakeSettings.json
.clangd

Help.md
targets.txt
97 changes: 4 additions & 93 deletions CMake/Common.cmake
Original file line number Diff line number Diff line change
@@ -1,91 +1,3 @@
# ================================
# Common
# ================================

set (CMAKE_CXX_STANDARD 20)
set (CMAKE_CXX_STANDARD_REQUIRED ON)

set (CMAKE_C_STANDARD 11)
set (CMAKE_C_STANDARD_REQUIRED ON)

set (CMAKE_POSITION_INDEPENDENT_CODE ON)

if (CMAKE_BUILD_TYPE STREQUAL "Debug")
carla_warning (
"CARLA is set to be built in Debug mode. This may cause issues when building CarlaUnrealEditor."
)
endif ()

if (LINUX)
check_linker_flag (CXX -lpthread HAS_PTHREAD)
if (HAS_PTHREAD)
add_link_options (-lpthread)
endif ()
endif ()

if (WIN32)
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
set (CARLA_DEBUG_AFFIX d)
set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebugDLL")
else ()
set (CARLA_DEBUG_AFFIX )
set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")
endif ()
endif ()

if (CMAKE_TOOLCHAIN_FILE)
cmake_path (
ABSOLUTE_PATH
CMAKE_TOOLCHAIN_FILE
BASE_DIRECTORY
${CARLA_WORKSPACE_PATH}
NORMALIZE
OUTPUT_VARIABLE
TOOLCHAIN_FILE
)
set (CMAKE_TOOLCHAIN_FILE ${TOOLCHAIN_FILE})
endif ()

# ================================
# Common Definitions
# ================================

if (WIN32)
add_compile_definitions (_CRT_SECURE_NO_WARNINGS)
check_cxx_compiler_flag (/utf-8 HAS_MSVC_UTF8)
if (HAS_MSVC_UTF8)
# @TODO This causes warnings with MASM. A better approach should be looked into.
add_compile_options ($<$<COMPILE_LANGUAGE:CXX>:/utf-8>)
endif ()
endif ()

set (CARLA_COMMON_DEFINITIONS)

foreach (FORMAT ${LIBCARLA_IMAGE_SUPPORTED_FORMATS})
carla_message_verbose ("Enabling CARLA image support for \"${FORMAT}\".")
string (TOUPPER "${FORMAT}" FORMAT_UPPERCASE)
list (APPEND CARLA_COMMON_DEFINITIONS LIBCARLA_IMAGE_SUPPORT_${FORMAT_UPPERCASE}=1)
endforeach ()

if (WIN32)
# Documentation: https://learn.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt?view=msvc-170
list (APPEND CARLA_COMMON_DEFINITIONS _WIN32_WINNT=0x0601) # <- Windows 10
list (APPEND CARLA_COMMON_DEFINITIONS HAVE_SNPRINTF)
list (APPEND CARLA_COMMON_DEFINITIONS _USE_MATH_DEFINES)
endif ()

if (WIN32)
set (EXE_EXT .exe)
set (UE_SYSTEM_NAME Win64)
elseif (LINUX)
set (EXE_EXT)
set (UE_SYSTEM_NAME Linux)
elseif (APPLE)
set (EXE_EXT)
set (UE_SYSTEM_NAME Mac)
else ()
carla_error ("Unknown target system.")
endif ()

# ================================
# Exception Definitions
Expand All @@ -106,14 +18,13 @@ else ()
endif ()
endif ()

carla_message ("Checking for ${EXCEPTIONS_FLAG} support")
message (STATUS "Checking for ${EXCEPTIONS_FLAG} support")
check_cxx_compiler_flag (${EXCEPTIONS_FLAG} HAS_EXCEPTIONS_FLAG)
if (HAS_EXCEPTIONS_FLAG)
add_compile_options ($<$<COMPILE_LANGUAGE:CXX>:${EXCEPTIONS_FLAG}>)
endif ()

set (CARLA_EXCEPTION_DEFINITIONS)

if (ENABLE_EXCEPTIONS)
# Nothing
else ()
Expand Down Expand Up @@ -143,7 +54,7 @@ else ()
endif ()
endif ()

carla_message ("Checking for ${RTTI_FLAG} support")
message (STATUS "Checking for ${RTTI_FLAG} support")
check_cxx_compiler_flag (${RTTI_FLAG} HAS_RTTI_FLAG)
if (HAS_RTTI_FLAG)
add_compile_options ($<$<COMPILE_LANGUAGE:CXX>:${RTTI_FLAG}>)
Expand Down Expand Up @@ -175,8 +86,8 @@ if (ENABLE_ALL_WARNINGS)
endif ()
check_cxx_compiler_flag(/Wall HAS_WALL_MSVC)
if (HAS_WALL_MSVC)
set (CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} /Wall")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Wall")
set (CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} /W4")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
endif ()
endif ()

Expand Down
59 changes: 32 additions & 27 deletions CMake/Dependencies.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ include (FetchContent)
set (CARLA_DEPENDENCIES_PENDING)

macro (carla_git_dependency_add NAME TAG ARCHIVE_URL GIT_URL)
carla_message ("Cloning ${NAME}...")
message (STATUS "Cloning ${NAME}...")
FetchContent_Declare (
${NAME}
GIT_REPOSITORY ${GIT_URL}
Expand All @@ -28,7 +28,7 @@ macro (carla_git_dependency_add NAME TAG ARCHIVE_URL GIT_URL)
endmacro ()

macro (carla_download_dependency_add NAME TAG ARCHIVE_URL GIT_URL)
carla_message ("Downloading ${NAME}...")
message (STATUS "Downloading ${NAME}...")
FetchContent_Declare (
${NAME}
URL ${ARCHIVE_URL}
Expand All @@ -52,23 +52,17 @@ macro (carla_dependencies_make_available)
set (CARLA_DEPENDENCIES_PENDING)
endmacro ()

macro (carla_dependency_option NAME VALUE)
set (${NAME} ${VALUE} CACHE INTERNAL "")
endmacro ()



# ==== SQLITE3 ====

#[[
set (THREADS_PREFER_PTHREAD_FLAG ON)
find_package (Threads REQUIRED)

string (REPLACE "." "" CARLA_SQLITE_TAG ${CARLA_SQLITE_VERSION})
string (REPLACE "." "" CARLA_SQLITE_TAG ${SQLITE_VERSION})

carla_message ("Downloading sqlite3...")
message (STATUS "Downloading sqlite3...")
FetchContent_Declare (
sqlite3
URL https://www.sqlite.org/${CARLA_SQLITE_RELEASE_YEAR}/sqlite-amalgamation-${CARLA_SQLITE_TAG}.zip
URL https://www.sqlite.org/${SQLITE_RELEASE_YEAR}/sqlite-amalgamation-${CARLA_SQLITE_TAG}.zip
SYSTEM OVERRIDE_FIND_PACKAGE EXCLUDE_FROM_ALL
)
FetchContent_MakeAvailable (sqlite3)
Expand All @@ -95,15 +89,16 @@ target_link_libraries (
sqlite3 PRIVATE
libsqlite3
)

]]


# ==== ZLIB ====
#[[
carla_dependency_option (ZLIB_BUILD_EXAMPLES OFF)
carla_dependency_add (
zlib
${CARLA_ZLIB_TAG}
https://github.com/madler/zlib/archive/refs/tags/${CARLA_ZLIB_TAG}.zip
${ZLIB_TAG}
https://github.com/madler/zlib/archive/refs/tags/${ZLIB_TAG}.zip
https://github.com/madler/zlib.git
)
carla_dependencies_make_available ()
Expand All @@ -119,10 +114,11 @@ else ()
endif ()
carla_dependency_option (ZLIB_INCLUDE_DIRS ${zlib_SOURCE_DIR} ${zlib_BINARY_DIR})
carla_dependency_option (ZLIB_LIBRARIES ${ZLIB_LIBRARY})

]]


# ==== LIBPNG ====
#[[
carla_dependency_option (PNG_SHARED OFF)
carla_dependency_option (PNG_STATIC ON)
if (APPLE)
Expand All @@ -134,19 +130,20 @@ carla_dependency_option (PNG_DEBUG OFF)
carla_dependency_option (PNG_HARDWARE_OPTIMIZATIONS ON)
carla_dependency_add (
libpng
${CARLA_LIBPNG_TAG}
https://github.com/pnggroup/libpng/archive/refs/tags/${CARLA_LIBPNG_TAG}.zip
${PNG_TAG}
https://github.com/pnggroup/libpng/archive/refs/tags/${PNG_TAG}.zip
https://github.com/pnggroup/libpng.git
)
carla_dependencies_make_available ()
include_directories (
${libpng_SOURCE_DIR}
${libpng_BINARY_DIR}
) # @TODO HACK

]]


# ==== BOOST ====
#[[
set (
BOOST_INCLUDED_PROJECTS
asio
Expand All @@ -164,57 +161,65 @@ set (
)
carla_dependency_option (BOOST_INCLUDE_LIBRARIES "${BOOST_INCLUDED_PROJECTS}")
carla_dependency_option (BOOST_EXCLUDE_LIBRARIES "${BOOST_EXCLUDED_PROJECTS}")
carla_dependency_option (BOOST_ENABLE_PYTHON ${BUILD_PYTHON_API})
carla_dependency_option (BOOST_ENABLE_PYTHON ON)
carla_dependency_option (BOOST_ENABLE_MPI OFF)
carla_dependency_option (BOOST_LOCALE_WITH_ICU OFF)
carla_dependency_option (BOOST_LOCALE_WITH_ICONV OFF)
carla_dependency_option (BOOST_GIL_BUILD_EXAMPLES OFF)
carla_dependency_option (BOOST_GIL_BUILD_HEADER_TESTS OFF)
carla_dependency_add(
boost
${CARLA_BOOST_TAG}
https://github.com/boostorg/boost/releases/download/${CARLA_BOOST_TAG}/${CARLA_BOOST_TAG}.zip
${BOOST_TAG}
https://github.com/boostorg/boost/releases/download/${BOOST_TAG}/${BOOST_TAG}.zip
https://github.com/boostorg/boost.git
)
]]



# ==== EIGEN ====
#[[
carla_dependency_option (EIGEN_BUILD_PKGCONFIG OFF)
carla_dependency_option (BUILD_TESTING OFF)
carla_dependency_option (EIGEN_BUILD_DOC OFF)
carla_dependency_option (CMAKE_Fortran_COMPILER "")
carla_dependency_add (
eigen
${CARLA_EIGEN_TAG}
https://gitlab.com/libeigen/eigen/-/archive/${CARLA_EIGEN_TAG}/eigen-${CARLA_EIGEN_TAG}.tar.gz
https://gitlab.com/libeigen/eigen.git
)
]]



# ==== RPCLIB ====
#[[
carla_dependency_option (RPCLIB_BUILD_TESTS OFF)
carla_dependency_option (RPCLIB_GENERATE_COMPDB OFF)
carla_dependency_option (RPCLIB_BUILD_EXAMPLES OFF)
carla_dependency_option (RPCLIB_ENABLE_LOGGING OFF)
carla_dependency_option (RPCLIB_ENABLE_COVERAGE OFF)
carla_dependency_add (
rpclib
${CARLA_RPCLIB_TAG}
https://github.com/carla-simulator/rpclib/archive/refs/heads/${CARLA_RPCLIB_TAG}.zip
${RPC_TAG}
https://github.com/carla-simulator/rpclib/archive/refs/heads/${RPC_TAG}.zip
https://github.com/carla-simulator/rpclib.git
)
]]



# ==== RECAST ====
#[[
carla_dependency_option (RECASTNAVIGATION_BUILDER ON)
carla_dependency_add (
recastnavigation
${CARLA_RECAST_TAG}
https://github.com/carla-simulator/recastnavigation/archive/refs/heads/${CARLA_RECAST_TAG}.zip
${RECAST_TAG}
https://github.com/carla-simulator/recastnavigation/archive/refs/heads/${RECAST_TAG}.zip
https://github.com/carla-simulator/recastnavigation.git
)
]]



Expand Down Expand Up @@ -272,7 +277,7 @@ if (BUILD_CARLA_UNREAL AND ENABLE_STREETMAP)
${CARLA_STREETMAP_TAG}
https://github.com/carla-simulator/StreetMap/archive/refs/heads/${CARLA_STREETMAP_TAG}.zip
https://github.com/carla-simulator/StreetMap.git
SOURCE_DIR ${CARLA_WORKSPACE_PATH}/Unreal/CarlaUnreal/Plugins/StreetMap
SOURCE_DIR ${CARLA_ROOT}/Unreal/CarlaUnreal/Plugins/StreetMap
)
endif ()

Expand Down
Loading
Loading