diff --git a/Ladybird/CMakeLists.txt b/Ladybird/CMakeLists.txt index e13b8a8307e..fb07b589569 100644 --- a/Ladybird/CMakeLists.txt +++ b/Ladybird/CMakeLists.txt @@ -55,15 +55,12 @@ if (HAIKU) endif() # Lagom -# FIXME: PROJECT_IS_TOP_LEVEL with CMake 3.21+ -set(LADYBIRD_IS_TOP_LEVEL FALSE) set(LADYBIRD_CUSTOM_TARGET_SUFFIX "-ladybird") -if ("${CMAKE_BINARY_DIR}" STREQUAL "${PROJECT_BINARY_DIR}") - set(LADYBIRD_IS_TOP_LEVEL TRUE) +if (PROJECT_IS_TOP_LEVEL) set(LADYBIRD_CUSTOM_TARGET_SUFFIX "") endif() -if (LADYBIRD_IS_TOP_LEVEL) +if (PROJECT_IS_TOP_LEVEL) get_filename_component( SERENITY_SOURCE_DIR "${ladybird_SOURCE_DIR}/.." ABSOLUTE diff --git a/Meta/CMake/code_generators.cmake b/Meta/CMake/code_generators.cmake index 63b8e7fb62e..0c96f2d8f4f 100644 --- a/Meta/CMake/code_generators.cmake +++ b/Meta/CMake/code_generators.cmake @@ -62,10 +62,7 @@ function(compile_ipc source output) add_custom_target(generate_${output_name} DEPENDS ${output}) add_dependencies(all_generated generate_${output_name}) - # TODO: Use cmake_path() when we upgrade the minimum CMake version to 3.20 - # https://cmake.org/cmake/help/v3.23/command/cmake_path.html#relative-path - string(LENGTH ${SerenityOS_SOURCE_DIR} root_source_dir_length) - string(SUBSTRING ${CMAKE_CURRENT_SOURCE_DIR} ${root_source_dir_length} -1 current_source_dir_relative) + cmake_path(RELATIVE_PATH CMAKE_CURRENT_SOURCE_DIR BASE_DIRECTORY ${SerenityOS_SOURCE_DIR} OUTPUT_VARIABLE current_source_dir_relative) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${output} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${current_source_dir_relative}" OPTIONAL) endfunction() diff --git a/Meta/CMake/utils.cmake b/Meta/CMake/utils.cmake index 80c8fd43331..eecdff3e126 100644 --- a/Meta/CMake/utils.cmake +++ b/Meta/CMake/utils.cmake @@ -29,10 +29,7 @@ function(serenity_install_headers target_name) endfunction() function(serenity_install_sources) - # TODO: Use cmake_path() when we upgrade the minimum CMake version to 3.20 - # https://cmake.org/cmake/help/v3.23/command/cmake_path.html#relative-path - string(LENGTH ${SerenityOS_SOURCE_DIR} root_source_dir_length) - string(SUBSTRING ${CMAKE_CURRENT_SOURCE_DIR} ${root_source_dir_length} -1 current_source_dir_relative) + cmake_path(RELATIVE_PATH CMAKE_CURRENT_SOURCE_DIR BASE_DIRECTORY ${SerenityOS_SOURCE_DIR} OUTPUT_VARIABLE current_source_dir_relative) file(GLOB_RECURSE sources RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.h" "*.cpp" "*.gml") foreach(source ${sources}) get_filename_component(subdirectory ${source} DIRECTORY)