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)