vita-toolchain

git clone https://git.neptards.moe/neptards/vita-toolchain.git
Log | Files | Refs | README | LICENSE

CMakeLists.txt (3539B)


      1 find_package(libelf REQUIRED)
      2 find_package(zlib REQUIRED)
      3 find_package(libzip REQUIRED)
      4 find_package(libyaml REQUIRED)
      5 
      6 include_directories(${libelf_INCLUDE_DIRS})
      7 include_directories(${zlib_INCLUDE_DIRS})
      8 include_directories(${libzip_INCLUDE_DIRS})
      9 
     10 set(CMAKE_C_FLAGS "-fvisibility=hidden -g -std=gnu99")
     11 
     12 if(USE_BUNDLED_ENDIAN_H)
     13 	add_definitions(-DUSE_BUNDLED_ENDIAN_H)
     14 endif()
     15 
     16 if(DEFINED ZIP_STATIC)
     17 	add_definitions(-DZIP_STATIC)
     18 endif()
     19 
     20 if (WIN32)
     21 	# See "Dynamic-Link Library Search Order (Windows)
     22 	# Standard Search Order for Desktop Applications"
     23 	# https://msdn.microsoft.com/en-us/library/windows/desktop/ms682586(v=vs.85).aspx#standard_search_order_for_desktop_applications
     24 	set(runtime_destination bin)
     25 	add_definitions(-DYAML_DECLARE_STATIC)
     26 else()
     27 	set(runtime_destination lib)
     28 endif()
     29 
     30 add_library(vita-yaml yamltree.c yamltreeutil.c)
     31 add_library(vita-export vita-export-parse.c sha256.c)
     32 add_library(vita-import vita-import.c vita-import-parse.c)
     33 
     34 set_target_properties(vita-yaml PROPERTIES
     35 	INCLUDE_DIRECTORIES "${libyaml_INCLUDE_DIRS};${CMAKE_CURRENT_SOURCE_DIR}/build")
     36 set_target_properties(vita-export PROPERTIES
     37 	INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/build
     38 	PUBLIC_HEADER "vita-toolchain-public.h;vita-export.h")
     39 set_target_properties(vita-import PROPERTIES
     40 	INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/build
     41 	PUBLIC_HEADER "vita-toolchain-public.h;vita-import.h")
     42 
     43 target_include_directories(vita-yaml PRIVATE
     44 	$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
     45 	$<INSTALL_INTERFACE:include>)
     46 
     47 target_include_directories(vita-export PUBLIC
     48 	$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
     49 	$<INSTALL_INTERFACE:include>)
     50 
     51 target_include_directories(vita-import PUBLIC
     52 	$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
     53 	$<INSTALL_INTERFACE:include>)
     54 
     55 add_executable(vita-libs-gen vita-libs-gen.c)
     56 add_executable(vita-elf-create vita-elf-create.c elf-create-argp.c vita-elf.c elf-defs.c sce-elf.c varray.c elf-utils.c)
     57 add_executable(vita-mksfoex vita-mksfoex.c getopt_long.c)
     58 add_executable(vita-make-fself vita-make-fself.c sha256.c)
     59 add_executable(vita-pack-vpk vita-pack-vpk.c)
     60 add_executable(vita-elf-export vita-elf-export.c yamlemitter.c)
     61 
     62 target_link_libraries(vita-yaml ${libyaml_LIBRARIES})
     63 target_link_libraries(vita-import vita-yaml)
     64 target_link_libraries(vita-export vita-yaml)
     65 target_link_libraries(vita-libs-gen vita-import)
     66 target_link_libraries(vita-elf-create vita-export vita-import ${libelf_LIBRARIES})
     67 target_link_libraries(vita-pack-vpk ${libzip_LIBRARIES} ${zlib_LIBRARIES})
     68 target_link_libraries(vita-elf-export vita-yaml vita-export)
     69 target_link_libraries(vita-make-fself ${zlib_LIBRARIES} vita-export vita-import)
     70 
     71 if(BUILD_SHARED_LIBS)
     72 	target_compile_definitions(vita-yaml PUBLIC VITA_TOOLCHAIN_SHARED)
     73 	target_compile_definitions(vita-import PUBLIC VITA_TOOLCHAIN_SHARED)
     74 	target_compile_definitions(vita-export PUBLIC VITA_TOOLCHAIN_SHARED)
     75 	install(TARGETS vita-yaml
     76 		DESTINATION lib
     77 		RUNTIME DESTINATION ${runtime_destination})
     78 endif()
     79 
     80 install(TARGETS vita-export
     81 	DESTINATION lib
     82 	PUBLIC_HEADER DESTINATION include
     83 	RUNTIME DESTINATION ${runtime_destination})
     84 install(TARGETS vita-import
     85 	DESTINATION lib
     86 	PUBLIC_HEADER DESTINATION include
     87 	RUNTIME DESTINATION ${runtime_destination})
     88 install(TARGETS vita-libs-gen DESTINATION bin)
     89 install(TARGETS vita-elf-create DESTINATION bin)
     90 install(TARGETS vita-mksfoex DESTINATION bin)
     91 install(TARGETS vita-make-fself DESTINATION bin)
     92 install(TARGETS vita-pack-vpk DESTINATION bin)
     93 install(TARGETS vita-elf-export DESTINATION bin)