From 917af96e33397f708053d578c3625073542f822c Mon Sep 17 00:00:00 2001 From: vla5924 Date: Wed, 24 Apr 2024 21:56:42 +0300 Subject: [PATCH 1/2] improve cmakelists --- compiler/CMakeLists.txt | 9 +++++++++ compiler/lib/backend/ast/CMakeLists.txt | 1 - compiler/lib/codegen/CMakeLists.txt | 16 +++++++--------- compiler/tests/backend/ast/CMakeLists.txt | 1 + 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/compiler/CMakeLists.txt b/compiler/CMakeLists.txt index 1d277109..98adb374 100644 --- a/compiler/CMakeLists.txt +++ b/compiler/CMakeLists.txt @@ -21,6 +21,15 @@ set(COMPILER_LIB_DIR ${CMAKE_SOURCE_DIR}/lib) set(ENABLE_CODEGEN "" CACHE STRING "Enables low-level code generation") set(AVAILABLE_CODEGEN "ast_to_llvmir") +if("${ENABLE_CODEGEN}^" STREQUAL "OFF^") + message(WARNING "All codegen backends were disabled because ENABLE_CODEGEN option was set to OFF. " + "Consider omitting its setting or using an empty string instead.") + set(ENABLE_CODEGEN "") +elseif("${ENABLE_CODEGEN}^" STREQUAL "ON^") + message(WARNING "All codegen backends were enabled because ENABLE_CODEGEN option was set to ON. " + "Consider using the string '${AVAILABLE_CODEGEN}' instead.") + set(ENABLE_CODEGEN "${AVAILABLE_CODEGEN}") +endif() option(ENABLE_CLI "Enables command-line interface application" ON) option(ENABLE_TESTS "Enables tests for components" ON) diff --git a/compiler/lib/backend/ast/CMakeLists.txt b/compiler/lib/backend/ast/CMakeLists.txt index fc7e4e54..32fcf692 100644 --- a/compiler/lib/backend/ast/CMakeLists.txt +++ b/compiler/lib/backend/ast/CMakeLists.txt @@ -15,6 +15,5 @@ target_include_directories(${TARGET_NAME} target_link_libraries(${TARGET_NAME} PUBLIC ast - frontend utils ) diff --git a/compiler/lib/codegen/CMakeLists.txt b/compiler/lib/codegen/CMakeLists.txt index f9d04338..f7946c0c 100644 --- a/compiler/lib/codegen/CMakeLists.txt +++ b/compiler/lib/codegen/CMakeLists.txt @@ -1,11 +1,9 @@ cmake_minimum_required(VERSION 3.22) -if(DEFINED ENABLE_CODEGEN AND NOT "${ENABLE_CODEGEN}^" STREQUAL "^" AND NOT "${ENABLE_CODEGEN}^" STREQUAL "OFF^") - foreach(TARGET IN LISTS ENABLE_CODEGEN) - if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${TARGET}") - add_subdirectory(${TARGET}) - else() - message(FATAL_ERROR "${TARGET} is not a correct codegen backend") - endif() - endforeach() -endif() +foreach(TARGET IN LISTS ENABLE_CODEGEN) + if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${TARGET}") + add_subdirectory(${TARGET}) + else() + message(FATAL_ERROR "${TARGET} is not a correct codegen backend") + endif() +endforeach() diff --git a/compiler/tests/backend/ast/CMakeLists.txt b/compiler/tests/backend/ast/CMakeLists.txt index d9fb8b84..e01930f2 100644 --- a/compiler/tests/backend/ast/CMakeLists.txt +++ b/compiler/tests/backend/ast/CMakeLists.txt @@ -13,6 +13,7 @@ target_include_directories(${TARGET_NAME} PUBLIC ) target_link_libraries(${TARGET_NAME} PUBLIC + frontend backend_ast gtest gtest_main From 1b51f0351b7a837540bafb1ae7de468c5cb07f20 Mon Sep 17 00:00:00 2001 From: Maksim Vlasov Date: Thu, 25 Apr 2024 10:06:28 +0000 Subject: [PATCH 2/2] link frontend to llvm test --- compiler/tests/codegen/ast_to_llvmir/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/compiler/tests/codegen/ast_to_llvmir/CMakeLists.txt b/compiler/tests/codegen/ast_to_llvmir/CMakeLists.txt index d065f781..27dd1d45 100644 --- a/compiler/tests/codegen/ast_to_llvmir/CMakeLists.txt +++ b/compiler/tests/codegen/ast_to_llvmir/CMakeLists.txt @@ -9,6 +9,7 @@ file(GLOB_RECURSE TARGET_SRC add_executable(${TARGET_NAME} ${TARGET_SRC}) target_link_libraries(${TARGET_NAME} PUBLIC + frontend backend_ast codegen_ast_to_llvmir gtest