cmake_minimum_required(VERSION 3.11)
project(ms_service_profiler VERSION 8.5.0 LANGUAGES CXX C)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
set(THIRD_PARTY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty")
set(CPP_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cpp")
option(ms_service_profiler_BUILD_TESTS "build ms_service_profiler uts and sts" OFF)
find_package(Python3 COMPONENTS Interpreter REQUIRED)
message(STATUS "Checking for conflicting package 'msserviceprofiler'...")
execute_process(
COMMAND ${Python3_EXECUTABLE} -c "import msserviceprofiler"
RESULT_VARIABLE CHECK_RESULT
OUTPUT_QUIET
ERROR_QUIET
)
if(${CHECK_RESULT} EQUAL 0)
message(FATAL_ERROR
"ERROR: Found conflicting package 'msserviceprofiler'\n"
"This conflicts with the new 'ms_service_profiler'.\n"
"Please uninstall it first:\n"
" ${Python3_EXECUTABLE} -m pip uninstall msserviceprofiler\n"
"Then retry installation."
)
else()
message(WARNING
"Note: 'ms_service_profiler' conflicts with the legacy 'msserviceprofiler'.\n"
"If you have multiple Python installations or are using conda/virtual environments,\n"
"ensure 'msserviceprofiler' is not installed in the target environment."
)
endif()
add_subdirectory("${THIRD_PARTY_DIR}")
add_subdirectory("${CPP_DIR}")
if(ms_service_profiler_BUILD_TESTS)
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/test")
endif()