Jelajahi Sumber

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.
Paul Redmond 5 tahun lalu
induk
melakukan
4d4e578edf
4 mengubah file dengan 11 tambahan dan 7 penghapusan
  1. 1 0
      AK/CMakeLists.txt
  2. 4 3
      CMakeLists.txt
  3. 2 0
      Kernel/CMakeLists.txt
  4. 4 4
      Toolchain/CMakeToolchain.txt

+ 1 - 0
AK/CMakeLists.txt

@@ -0,0 +1 @@
+serenity_install_headers(AK)

+ 4 - 3
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)

+ 2 - 0
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)

+ 4 - 4
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++)