cmake_minimum_required(VERSION 4.0) project(test_lsp_any LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP 1) find_package(glaze CONFIG REQUIRED) if(UNIX AND NOT APPLE) find_package(Threads REQUIRED) endif() set(SOURCES test_main.cppm) add_executable(${PROJECT_NAME} ${SOURCES}) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) target_sources( ${PROJECT_NAME} PRIVATE FILE_SET cxx_modules TYPE CXX_MODULES BASE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../../src FILES ../../src/bridge/glaze.cppm test_main.cppm test_framework.cppm common_test.cppm lsp_any_test.cppm transformer_test.cppm facade_test.cppm ../../src/protocol/common/basic_types.cppm ../../src/protocol/common/message.cppm ../../src/protocol/common/registration.cppm ../../src/protocol/window/progress.cppm ../../src/protocol/initialize/configuration.cppm ../../src/protocol/initialize/capabilities.cppm ../../src/protocol/workspace/workspace.cppm ../../src/protocol/workspace/file_operations.cppm ../../src/protocol/workspace/notebook.cppm ../../src/protocol/text_document/document_sync.cppm ../../src/protocol/text_document/completion.cppm ../../src/protocol/text_document/code_actions.cppm ../../src/protocol/text_document/diagnostics.cppm ../../src/protocol/text_document/document_features.cppm ../../src/protocol/text_document/formatting.cppm ../../src/protocol/text_document/inline_features.cppm ../../src/protocol/text_document/navigation.cppm ../../src/protocol/text_document/rename.cppm ../../src/protocol/text_document/semantic_tokens.cppm ../../src/protocol/text_document/signature_help.cppm ../../src/protocol/text_document/symbols.cppm ../../src/codec/common.cppm ../../src/codec/transformer.cppm ../../src/codec/facade.cppm ../../src/protocol/types.cppm ../../src/protocol/protocol.cppm) target_link_libraries(${PROJECT_NAME} PRIVATE glaze::glaze $<$:Threads::Threads>) target_compile_options( ${PROJECT_NAME} PRIVATE -Wall -Wextra -Wpedantic $<$:-g -O0> -Wno-import-implementation-partition-unit-in-interface-unit $<$:-O3>)