Просмотр исходного кода

CMake: Create thin archives on Linux

This significantly reduces unnecessary disk writes and space usage
when building Citra.

libcore.a is now only ~1MB rather than several hundred megabytes.
Léo Lam 7 лет назад
Родитель
Сommit
f98cd210ab
1 измененных файлов с 9 добавлено и 0 удалено
  1. 9 0
      src/CMakeLists.txt

+ 9 - 0
src/CMakeLists.txt

@@ -77,6 +77,15 @@ else()
             add_compile_options("-static")
             add_compile_options("-static")
         endif()
         endif()
     endif()
     endif()
+
+    if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR MINGW)
+        # GNU ar: Create thin archive files.
+        # Requires binutils-2.19 or later.
+        set(CMAKE_C_ARCHIVE_CREATE   "<CMAKE_AR> qcTP <TARGET> <LINK_FLAGS> <OBJECTS>")
+        set(CMAKE_C_ARCHIVE_APPEND   "<CMAKE_AR> qTP  <TARGET> <LINK_FLAGS> <OBJECTS>")
+        set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qcTP <TARGET> <LINK_FLAGS> <OBJECTS>")
+        set(CMAKE_CXX_ARCHIVE_APPEND "<CMAKE_AR> qTP  <TARGET> <LINK_FLAGS> <OBJECTS>")
+    endif()
 endif()
 endif()
 
 
 add_subdirectory(common)
 add_subdirectory(common)