summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Redmond <paul.redmond@gmail.com>2020-05-26 14:20:24 -0400
committerAndreas Kling <kling@serenityos.org>2020-05-29 20:21:10 +0200
commit4d4e578edfde7299cfbebce8af9f34b82b0fbd21 (patch)
treea37279fa95d4556c55fa8f81ada75efc7dec4fca
parentb0b03c52af284e1473361bd211d8ad422f24faee (diff)
downloadserenity-4d4e578edfde7299cfbebce8af9f34b82b0fbd21.zip
Ports: Fix CMake-based ports
The SDL port failed to build because the CMake toolchain filed pointed to the old root. Now the toolchain file assumes that the Root is in Build/Root. Additionally, the AK/ and Kernel/ headers need to be installed in the root too.
-rw-r--r--AK/CMakeLists.txt1
-rw-r--r--CMakeLists.txt7
-rw-r--r--Kernel/CMakeLists.txt2
-rw-r--r--Toolchain/CMakeToolchain.txt8
4 files changed, 11 insertions, 7 deletions
diff --git a/AK/CMakeLists.txt b/AK/CMakeLists.txt
new file mode 100644
index 0000000000..b318669ba3
--- /dev/null
+++ b/AK/CMakeLists.txt
@@ -0,0 +1 @@
+serenity_install_headers(AK)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4d671a6a02..2929f2b92a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -40,7 +40,7 @@ add_subdirectory(DevTools/FormCompiler)
add_subdirectory(Libraries/LibWeb/CodeGenerators)
add_subdirectory(AK/Tests)
-function(serenity_lib_headers target_name)
+function(serenity_install_headers target_name)
file(GLOB_RECURSE headers RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.h")
foreach(header ${headers})
get_filename_component(subdirectory ${header} DIRECTORY)
@@ -49,7 +49,7 @@ function(serenity_lib_headers target_name)
endfunction()
function(serenity_lib target_name fs_name)
- serenity_lib_headers(${target_name})
+ serenity_install_headers(${target_name})
add_library(${target_name} ${SOURCES} ${GENERATED_SOURCES})
install(TARGETS ${target_name} ARCHIVE DESTINATION usr/lib)
set_target_properties(${target_name} PROPERTIES OUTPUT_NAME ${fs_name})
@@ -63,7 +63,7 @@ function(serenity_lib target_name fs_name)
endfunction()
function(serenity_libc target_name fs_name)
- serenity_lib_headers("")
+ serenity_install_headers("")
add_library(${target_name} ${SOURCES})
install(TARGETS ${target_name} ARCHIVE DESTINATION usr/lib)
set_target_properties(${target_name} PROPERTIES OUTPUT_NAME ${fs_name})
@@ -121,6 +121,7 @@ include_directories(Services)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/Services)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/Libraries)
+add_subdirectory(AK)
add_subdirectory(Kernel)
add_subdirectory(Libraries)
add_subdirectory(Services)
diff --git a/Kernel/CMakeLists.txt b/Kernel/CMakeLists.txt
index 19f1637b11..6359825dfe 100644
--- a/Kernel/CMakeLists.txt
+++ b/Kernel/CMakeLists.txt
@@ -181,4 +181,6 @@ add_custom_command(
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kernel.map DESTINATION res)
+serenity_install_headers(Kernel)
+
add_subdirectory(Modules)
diff --git a/Toolchain/CMakeToolchain.txt b/Toolchain/CMakeToolchain.txt
index 879b82bd13..85e74162d7 100644
--- a/Toolchain/CMakeToolchain.txt
+++ b/Toolchain/CMakeToolchain.txt
@@ -7,10 +7,10 @@ endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fno-exceptions")
# where to read from/write to
-set(CMAKE_SYSROOT $ENV{SERENITY_ROOT}/Root)
-set(CMAKE_STAGING_PREFIX $ENV{SERENITY_ROOT}/Root/usr)
-set(CMAKE_INSTALL_PREFIX $ENV{SERENITY_ROOT}/Root/usr)
-set(CMAKE_INSTALL_DATAROOTDIR $ENV{SERENITY_ROOT}/Root/usr/share)
+set(CMAKE_SYSROOT $ENV{SERENITY_ROOT}/Build/Root)
+set(CMAKE_STAGING_PREFIX $ENV{SERENITY_ROOT}/Build/Root/usr)
+set(CMAKE_INSTALL_PREFIX $ENV{SERENITY_ROOT}/Build/Root/usr)
+set(CMAKE_INSTALL_DATAROOTDIR $ENV{SERENITY_ROOT}/Build/Root/usr/share)
set(CMAKE_C_COMPILER i686-pc-serenity-gcc)
set(CMAKE_CXX_COMPILER i686-pc-serenity-g++)