llvm-project/lldb/source/CMakeLists.txt

110 lines
3.2 KiB
CMake

include_directories(.)
if ( CMAKE_SYSTEM_NAME MATCHES "Linux" )
include_directories(
Plugins/Process/Linux
Plugins/Process/POSIX
)
endif ()
if ( CMAKE_SYSTEM_NAME MATCHES "FreeBSD" )
include_directories(
Plugins/Process/FreeBSD
Plugins/Process/POSIX
)
endif ()
if ( CMAKE_SYSTEM_NAME MATCHES "NetBSD" )
include_directories(
Plugins/Process/POSIX
)
endif ()
set(lldbBase_SOURCES
lldb.cpp
)
foreach(file
"${LLDB_SOURCE_DIR}/.git/logs/HEAD" # Git
"${LLDB_SOURCE_DIR}/.svn/wc.db" # SVN 1.7
"${LLDB_SOURCE_DIR}/.svn/entries" # SVN 1.6
)
if(EXISTS "${file}")
set(lldb_vc "${file}")
break()
endif()
endforeach()
if(DEFINED lldb_vc)
set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc")
set(get_svn_script "${LLVM_CMAKE_PATH}/GetSVN.cmake")
# Create custom target to generate the VC revision include.
add_custom_command(OUTPUT "${version_inc}"
DEPENDS "${lldb_vc}" "${get_svn_script}"
COMMAND
${CMAKE_COMMAND} "-DFIRST_SOURCE_DIR=${LLDB_SOURCE_DIR}"
"-DFIRST_NAME=LLDB"
"-DHEADER_FILE=${version_inc}"
-P "${get_svn_script}")
# Mark the generated header as being generated.
set_source_files_properties("${version_inc}"
PROPERTIES GENERATED TRUE
HEADER_FILE_ONLY TRUE)
# Tell Version.cpp that it needs to build with -DHAVE_SVN_VERSION_INC.
set_property(SOURCE lldb.cpp APPEND PROPERTY
COMPILE_DEFINITIONS "HAVE_SVN_VERSION_INC")
list(APPEND lldbBase_SOURCES ${version_inc})
endif()
if(APPLE)
set(apple_version_inc "${CMAKE_CURRENT_BINARY_DIR}/AppleVersion.inc")
set(apple_version_script "${LLDB_SOURCE_DIR}/cmake/modules/EmbedAppleVersion.cmake")
set(info_plist ${LLDB_SOURCE_DIR}/resources/LLDB-Info.plist)
# Create custom target to generate the VC revision include.
add_custom_command(OUTPUT "${apple_version_inc}"
DEPENDS "${apple_version_script}" "${info_plist}"
COMMAND
${CMAKE_COMMAND} "-DLLDB_INFO_PLIST=${info_plist}"
"-DHEADER_FILE=${apple_version_inc}"
-P "${apple_version_script}")
# Mark the generated header as being generated.
set_source_files_properties("${apple_version_inc}"
PROPERTIES GENERATED TRUE
HEADER_FILE_ONLY TRUE)
# Tell Version.cpp that it needs to build with -DHAVE_SVN_VERSION_INC.
set_property(SOURCE lldb.cpp APPEND PROPERTY
COMPILE_DEFINITIONS "HAVE_APPLE_VERSION_INC")
list(APPEND lldbBase_SOURCES ${apple_version_inc})
elseif(LLDB_VERSION_STRING)
set_property(SOURCE lldb.cpp APPEND PROPERTY
COMPILE_DEFINITIONS "LLDB_VERSION_STRING=${LLDB_VERSION_STRING}")
endif()
add_lldb_library(lldbBase
${lldbBase_SOURCES}
)
add_subdirectory(Breakpoint)
add_subdirectory(Commands)
add_subdirectory(Core)
add_subdirectory(DataFormatters)
add_subdirectory(Expression)
add_subdirectory(Host)
add_subdirectory(Initialization)
add_subdirectory(Interpreter)
add_subdirectory(Plugins)
add_subdirectory(Symbol)
add_subdirectory(Target)
add_subdirectory(Utility)
# Build API last. Since liblldb needs to link against every other target, it needs
# those targets to have already been created.
add_subdirectory(API)