1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

Move discovery of external dependencies to cmake/vendor.cmake.

Co-authored-by: Tom Atkinson <tja.atkinson@gmail.com>
This commit is contained in:
Bartosz Taudul
2024-03-16 14:29:39 +01:00
parent a5f256ca2d
commit ee81795f26
2 changed files with 277 additions and 91 deletions
+30 -91
View File
@@ -3,10 +3,9 @@ cmake_minimum_required(VERSION 3.16)
option(NO_FILESELECTOR "Disable the file selector")
option(GTK_FILESELECTOR "Use the GTK file selector on Linux instead of the xdg-portal one")
option(LEGACY "Instead of Wayland, use the legacy X11 backend on Linux")
option(NO_ISA_EXTENSIONS "Disable ISA extensions (don't pass -march=native or -mcpu=native to the compiler)")
find_package(PkgConfig REQUIRED)
include(../cmake/version.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/version.cmake)
set(TRACY_VERSION_MAJOR ${major})
set(TRACY_VERSION_MINOR ${minor})
@@ -21,13 +20,31 @@ project(
VERSION ${TRACY_VERSION_STRING}
)
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE)
if(COMPILER_SUPPORTS_MARCH_NATIVE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=native")
if (NOT NO_ISA_EXTENSIONS)
include(CheckCXXCompilerFlag)
if (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "arm64")
CHECK_CXX_COMPILER_FLAG("-mcpu=native" COMPILER_SUPPORTS_MCPU_NATIVE)
if(COMPILER_SUPPORTS_MARCH_NATIVE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=native")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mcpu=native")
endif()
else()
CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE)
if(COMPILER_SUPPORTS_MARCH_NATIVE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=native")
endif()
endif()
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT LEGACY)
set(USE_WAYLAND ON)
else()
set(USE_WAYLAND OFF)
endif()
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/vendor.cmake)
set(COMMON_FILES
../public/common/tracy_lz4.cpp
../public/common/tracy_lz4hc.cpp
@@ -97,39 +114,6 @@ set(SERVER_FILES
../server/TracyWorker.cpp
)
set(ZSTD_FILES
../zstd/common/debug.c
../zstd/common/entropy_common.c
../zstd/common/error_private.c
../zstd/common/fse_decompress.c
../zstd/common/pool.c
../zstd/common/threading.c
../zstd/common/xxhash.c
../zstd/common/zstd_common.c
../zstd/compress/fse_compress.c
../zstd/compress/hist.c
../zstd/compress/huf_compress.c
../zstd/compress/zstd_compress.c
../zstd/compress/zstd_compress_literals.c
../zstd/compress/zstd_compress_sequences.c
../zstd/compress/zstd_compress_superblock.c
../zstd/compress/zstd_double_fast.c
../zstd/compress/zstd_fast.c
../zstd/compress/zstd_lazy.c
../zstd/compress/zstd_ldm.c
../zstd/compress/zstd_opt.c
../zstd/compress/zstdmt_compress.c
../zstd/decompress/huf_decompress.c
../zstd/decompress/huf_decompress_amd64.S
../zstd/decompress/zstd_ddict.c
../zstd/decompress/zstd_decompress.c
../zstd/decompress/zstd_decompress_block.c
../zstd/dictBuilder/cover.c
../zstd/dictBuilder/divsufsort.c
../zstd/dictBuilder/fastcover.c
../zstd/dictBuilder/zdict.c
)
set(PROFILER_FILES
src/imgui/imgui_impl_opengl3.cpp
src/ConnectionHistory.cpp
@@ -147,38 +131,9 @@ set(PROFILER_FILES
src/winmainArchDiscovery.cpp
)
set(IMGUI_FILES
../imgui/misc/freetype/imgui_freetype.cpp
../imgui/imgui_demo.cpp
../imgui/imgui_draw.cpp
../imgui/imgui_tables.cpp
../imgui/imgui_widgets.cpp
../imgui/imgui.cpp
)
set(INCLUDES "")
set(LIBS "")
set(NFD_FILES)
if(NO_FILESELECTOR)
add_compile_definitions(TRACY_NO_FILESELECTOR)
else()
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
enable_language(OBJC)
set(NFD_FILES ../nfd/nfd_cocoa.m)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT GTK_FILESELECTOR)
pkg_check_modules(DBUS REQUIRED dbus-1)
set(INCLUDES "${INCLUDES};${DBUS_INCLUDE_DIRS}")
set(LIBS "${LIBS};${DBUS_LIBRARIES}")
set(NFD_FILES ../nfd/nfd_portal.cpp)
else()
pkg_check_modules(GTK REQUIRED gtk+-3.0)
set(INCLUDES "${INCLUDES};${GTK_INCLUDE_DIRS}")
set(LIBS "${LIBS};${GTK_LIBRARIES}")
set(NFD_FILES ../nfd/nfd_gtk.cpp)
endif()
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT LEGACY)
pkg_check_modules(WAYLAND REQUIRED egl wayland-egl wayland-cursor xkbcommon)
set(INCLUDES "${INCLUDES};${WAYLAND_INCLUDE_DIRS}")
@@ -189,30 +144,14 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT LEGACY)
src/wayland/xdg-decoration.c
src/wayland/xdg-shell.c
)
else()
pkg_check_modules(GLFW REQUIRED glfw3)
set(INCLUDES "${INCLUDES};${GLFW_INCLUDE_DIRS}")
set(LIBS "${LIBS};${GLFW_LIBRARIES}")
set(PROFILER_FILES ${PROFILER_FILES}
src/BackendGlfw.cpp
src/imgui/imgui_impl_glfw.cpp
)
endif()
pkg_check_modules(DEPS REQUIRED capstone freetype2)
set(INCLUDES "${INCLUDES};${DEPS_INCLUDE_DIRS}")
set(LIBS "${LIBS};${DEPS_LIBRARIES}")
pkg_check_modules(DEPSOPT tbb)
if(DEPSOPT_FOUND)
set(INCLUDES "${INCLUDES};${DEPSOPT_INCLUDE_DIRS}")
set(LIBS "${LIBS};${DEPSOPT_LIBRARIES}")
endif()
include_directories(${INCLUDES})
link_libraries(${LIBS})
include_directories(../imgui)
add_compile_definitions(IMGUI_ENABLE_FREETYPE)
add_executable(${PROJECT_NAME} ${PROFILER_FILES} ${COMMON_FILES} ${SERVER_FILES})
target_link_libraries(${PROJECT_NAME} PRIVATE TracyImGui TracyCapstone TracyZstd TracyNfd)
add_executable(${PROJECT_NAME} ${PROFILER_FILES} ${IMGUI_FILES} ${COMMON_FILES} ${SERVER_FILES} ${ZSTD_FILES} ${NFD_FILES})
if (UNIX)
target_link_libraries(${PROJECT_NAME} PRIVATE TracyTbb)
endif()