mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 16:12:44 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			33 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| set(LOADER_SOURCES
 | |
|     main.cpp
 | |
|     math.cpp
 | |
|     misc.cpp
 | |
| )
 | |
| 
 | |
| file(GLOB AK_SOURCES "../../AK/*.cpp")
 | |
| file(GLOB ELF_SOURCES "../Libraries/LibELF/*.cpp")
 | |
| set(ELF_SOURCES ${ELF_SOURCES} ../Libraries/LibELF/Arch/i386/plt_trampoline.S)
 | |
| file(GLOB LIBC_SOURCES1 "../Libraries/LibC/*.cpp")
 | |
| file(GLOB LIBC_SOURCES2 "../Libraries/LibC/*/*.cpp")
 | |
| 
 | |
| if ("${SERENITY_ARCH}" STREQUAL "i686")
 | |
|     file(GLOB LIBC_SOURCES3 "../Libraries/LibC/arch/i386/*.S")
 | |
| elseif ("${SERENITY_ARCH}" STREQUAL "x86_64")
 | |
|     file(GLOB LIBC_SOURCES3 "../Libraries/LibC/arch/x86_64/*.S")
 | |
| endif()
 | |
| 
 | |
| file(GLOB LIBSYSTEM_SOURCES "../Libraries/LibSystem/*.cpp")
 | |
| 
 | |
| list(FILTER LIBC_SOURCES1 EXCLUDE REGEX ".+crt0.cpp")
 | |
| list(FILTER LIBC_SOURCES1 EXCLUDE REGEX ".+crt0.+.cpp")
 | |
| 
 | |
| set(SOURCES ${LOADER_SOURCES} ${AK_SOURCES} ${ELF_SOURCES} ${LIBC_SOURCES1} ${LIBC_SOURCES2} ${LIBC_SOURCES3} ${LIBSYSTEM_SOURCES})
 | |
| 
 | |
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -nostdlib -pie -fpic -DNO_TLS")
 | |
| 
 | |
| set_source_files_properties (../Libraries/LibC/ssp.cpp PROPERTIES COMPILE_FLAGS
 | |
|     "-fno-stack-protector")
 | |
| 
 | |
| add_executable(Loader.so ${SOURCES})
 | |
| target_link_options(Loader.so PRIVATE LINKER:--no-dynamic-linker)
 | |
| install(TARGETS Loader.so RUNTIME DESTINATION usr/lib/)
 | 
