uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead

https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948
this can do it nicely.

Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
Anton Arapov 2021-04-03 12:58:10 +02:00 committed by Alan Daniels
commit 56de2bcd43
30691 changed files with 3076956 additions and 0 deletions

View file

@ -0,0 +1,62 @@
{ stdenv, lib, fetchurl, fetchFromGitHub, cmake, python3, rustPlatform, SDL2, fltk, rapidjson, gtest, Carbon, Cocoa }:
let
version = "0.17.0";
src = fetchFromGitHub {
owner = "ja2-stracciatella";
repo = "ja2-stracciatella";
rev = "v${version}";
sha256 = "0m6rvgkba29jy3yq5hs1sn26mwrjl6mamqnv4plrid5fqaivhn6j";
};
libstracciatella = rustPlatform.buildRustPackage {
pname = "libstracciatella";
inherit version;
src = "${src}/rust";
cargoHash = "sha256-asUt+wUpwwDvSyuNZds6yMC4Ef4D8woMYWamzcJJiy4=";
preBuild = ''
mkdir -p $out/include/stracciatella
export HEADER_LOCATION=$out/include/stracciatella/stracciatella.h
'';
};
stringTheoryUrl = "https://github.com/zrax/string_theory/archive/3.1.tar.gz";
stringTheory = fetchurl {
url = stringTheoryUrl;
sha256 = "1flq26kkvx2m1yd38ldcq2k046yqw07jahms8a6614m924bmbv41";
};
in
stdenv.mkDerivation {
pname = "ja2-stracciatella";
inherit src version;
nativeBuildInputs = [ cmake python3 ];
buildInputs = [ SDL2 fltk rapidjson gtest ] ++ lib.optionals stdenv.isDarwin [ Carbon Cocoa ];
patches = [
./remove-rust-buildstep.patch
];
preConfigure = ''
# Use rust library built with nix
substituteInPlace CMakeLists.txt \
--replace lib/libstracciatella_c_api.a ${libstracciatella}/lib/libstracciatella_c_api.a \
--replace include/stracciatella ${libstracciatella}/include/stracciatella \
--replace bin/ja2-resource-pack ${libstracciatella}/bin/ja2-resource-pack
# Patch dependencies that are usually loaded by url
substituteInPlace dependencies/lib-string_theory/builder/CMakeLists.txt.in \
--replace ${stringTheoryUrl} file://${stringTheory}
cmakeFlagsArray+=("-DLOCAL_RAPIDJSON_LIB=OFF" "-DLOCAL_GTEST_LIB=OFF" "-DEXTRA_DATA_DIR=$out/share/ja2")
'';
doInstallCheck = true;
installCheckPhase = ''
HOME=/tmp $out/bin/ja2 -unittests
'';
meta = {
description = "Jagged Alliance 2, with community fixes";
license = "SFI Source Code license agreement";
homepage = "https://ja2-stracciatella.github.io/";
};
}

View file

@ -0,0 +1,73 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e4e5547af..a3017d197 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -175,13 +175,12 @@ if(BUILD_LAUNCHER)
endif()
message(STATUS "Fltk Libraries: ${FLTK_LIBRARIES}")
-set(JA2_INCLUDES "")
+set(JA2_INCLUDES "include/stracciatella")
set(JA2_SOURCES "")
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/externalized")
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/game")
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/sgp")
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/dependencies/lib-smacker")
-add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/dependencies/lib-stracciatella")
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/dependencies/lib-string_theory")
if(BUILD_LAUNCHER)
@@ -239,14 +238,12 @@ string(LENGTH "${CMAKE_SOURCE_DIR}/src/" SOURCE_PATH_SIZE)
add_definitions("-DSOURCE_PATH_SIZE=${SOURCE_PATH_SIZE}")
add_executable(${JA2_BINARY} ${JA2_SOURCES})
-target_link_libraries(${JA2_BINARY} ${SDL2_LIBRARY} ${GTEST_LIBRARIES} smacker ${STRACCIATELLA_LIBRARIES} string_theory-internal)
-add_dependencies(${JA2_BINARY} stracciatella)
+target_link_libraries(${JA2_BINARY} ${SDL2_LIBRARY} ${GTEST_LIBRARIES} smacker lib/libstracciatella_c_api.a dl pthread string_theory-internal)
set_property(SOURCE ${CMAKE_SOURCE_DIR}/src/game/GameVersion.cc APPEND PROPERTY COMPILE_DEFINITIONS "GAME_VERSION=v${ja2-stracciatella_VERSION}")
if(BUILD_LAUNCHER)
add_executable(${LAUNCHER_BINARY} ${LAUNCHER_SOURCES})
- target_link_libraries(${LAUNCHER_BINARY} ${FLTK_LIBRARIES} ${STRACCIATELLA_LIBRARIES} string_theory-internal)
- add_dependencies(${LAUNCHER_BINARY} stracciatella)
+ target_link_libraries(${LAUNCHER_BINARY} ${FLTK_LIBRARIES} lib/libstracciatella_c_api.a dl pthread string_theory-internal)
endif()
macro(copy_assets_dir_to_ja2_binary_after_build DIR)
@@ -375,12 +372,12 @@ set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}_${CPACK_PACKAGE_VERSION}_${PACKAGE_
include(CPack)
-if (UNIX AND NOT MINGW AND NOT APPLE)
+if (UNIX)
install(TARGETS ${JA2_BINARY} RUNTIME DESTINATION bin)
if(BUILD_LAUNCHER)
install(TARGETS ${LAUNCHER_BINARY} RUNTIME DESTINATION bin)
endif()
- install(PROGRAMS "${CMAKE_BINARY_DIR}/lib-stracciatella/bin/ja2-resource-pack${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION bin)
+ install(PROGRAMS "bin/ja2-resource-pack" DESTINATION bin)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/assets/externalized assets/mods assets/unittests DESTINATION share/ja2)
if(WITH_EDITOR_SLF)
install(FILES "${EDITORSLF_FILE}" DESTINATION share/ja2)
@@ -400,7 +397,7 @@ else()
if(BUILD_LAUNCHER)
install(TARGETS ${LAUNCHER_BINARY} RUNTIME DESTINATION .)
endif()
- install(PROGRAMS "${CMAKE_BINARY_DIR}/lib-stracciatella/bin/ja2-resource-pack${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION .)
+ install(PROGRAMS "bin/ja2-resource-pack" DESTINATION .)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/assets/externalized assets/mods assets/unittests DESTINATION .)
if(WITH_EDITOR_SLF)
install(FILES "${EDITORSLF_FILE}" DESTINATION .)
@@ -428,12 +425,6 @@ if (MINGW)
install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/install-dlls-mingw.cmake")
endif()
-if(APPLE)
- file(GLOB APPLE_DIST_FILES "${CMAKE_CURRENT_SOURCE_DIR}/assets/distr-files-mac/*.txt")
- install(FILES ${APPLE_DIST_FILES} DESTINATION .)
- install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/lib-SDL2-2.0.8-macos/SDL2.framework DESTINATION .)
-endif()
-
## Uninstall
add_custom_templated_target("uninstall")