Browse Source

Revert "Move all prebuild functionality into dune. (#11966)"

This reverts commit eaf9dc76761625ae5a8b8fee40c74732e11cf013.
Simon Krajewski 7 months ago
parent
commit
c85f26957a
11 changed files with 49 additions and 48 deletions
  1. 1 1
      .github/workflows/main.yml
  2. 13 1
      Makefile
  3. 4 0
      Makefile.win
  4. 2 2
      dune
  5. 4 0
      dune-project
  6. 1 1
      extra/github-actions/build-mac.yml
  7. 14 0
      src-prebuild/dune
  8. 5 21
      src-prebuild/prebuild.ml
  9. 0 5
      src/compiler/dune
  10. 3 3
      src/core/dune
  11. 2 14
      src/dune

+ 1 - 1
.github/workflows/main.yml

@@ -623,7 +623,7 @@ jobs:
         run: |
           set -ex
           eval $(opam env)
-          opam config exec -- make -s STATICLINK=1 "LIB_PARAMS=\"/usr/local/lib/libz.a\" \"/usr/local/lib/libpcre2-8.a\" \"/usr/local/lib/libmbedtls.a\" \"/usr/local/lib/libmbedcrypto.a\" \"/usr/local/lib/libmbedx509.a\"" haxe
+          opam config exec -- make -s -j`sysctl -n hw.ncpu` STATICLINK=1 "LIB_PARAMS=/usr/local/lib/libz.a /usr/local/lib/libpcre2-8.a /usr/local/lib/libmbedtls.a /usr/local/lib/libmbedcrypto.a /usr/local/lib/libmbedx509.a -cclib '-framework Security -framework CoreFoundation'" haxe
           opam config exec -- make -s haxelib
           make -s package_unix package_installer_mac
           ls -l out

+ 13 - 1
Makefile

@@ -63,10 +63,22 @@ NEKO_VERSION=2.4.0-rc.1
 NEKO_MAJOR_VERSION=$(shell echo "$(NEKO_VERSION)" | grep -oE "^[0-9]+")
 NEKO_VERSION_TAG=v$(shell echo "$(NEKO_VERSION)" | sed "s/\./-/g")
 
+ifneq ($(STATICLINK),0)
+	LIB_PARAMS= -cclib '-Wl,-Bstatic -lpcre2-8 -lz -lmbedtls -lmbedx509 -lmbedcrypto -Wl,-Bdynamic '
+else
+	LIB_PARAMS?= -cclib -lpcre2-8 -cclib -lz -cclib -lmbedtls -cclib -lmbedx509 -cclib -lmbedcrypto
+endif
+ifeq ($(SYSTEM_NAME),Mac)
+	LIB_PARAMS+= -cclib '-framework Security -framework CoreFoundation'
+endif
+
 all: haxe tools
 
 haxe:
-	dune build src/haxe.exe
+	$(DUNE_COMMAND) build --workspace dune-workspace.dev src-prebuild/prebuild.exe
+	_build/default/src-prebuild/prebuild.exe libparams $(LIB_PARAMS) > lib.sexp
+	_build/default/src-prebuild/prebuild.exe version "$(ADD_REVISION)" "$(BRANCH)" "$(COMMIT_SHA)" > src/compiler/version.ml
+	$(DUNE_COMMAND) build --workspace dune-workspace.dev src/haxe.exe
 	cp -f _build/default/src/haxe.exe ./"$(HAXE_OUTPUT)"
 
 plugin: haxe

+ 4 - 0
Makefile.win

@@ -42,6 +42,10 @@ ifdef FILTER
 CC_CMD=($(COMPILER) $(ALL_CFLAGS) -c $< 2>tmp.cmi && $(FILTER)) || ($(FILTER) && exit 1)
 endif
 
+ifeq ($(STATICLINK),0)
+	LIB_PARAMS = -cclib -lpcre2-8 -cclib -lz -cclib -lcrypt32 -cclib -lmbedtls -cclib -lmbedcrypto -cclib -lmbedx509
+endif
+
 PACKAGE_FILES=$(HAXE_OUTPUT) $(HAXELIB_OUTPUT) std \
 	"$$(cygcheck $(CURDIR)/$(HAXE_OUTPUT) | grep zlib1.dll | sed -e 's/^\s*//')" \
 	"$$(cygcheck $(CURDIR)/$(HAXE_OUTPUT) | grep libpcre2-8-0.dll | sed -e 's/^\s*//')" \

+ 2 - 2
dune

@@ -1,2 +1,2 @@
-(dirs src libs)
-(data_only_dirs src-json)
+(dirs :standard \ tests std extra)
+(data_only_dirs lib)

+ 4 - 0
dune-project

@@ -4,3 +4,7 @@
 (package
 	(name haxe)
 )
+
+(package
+	(name haxe_prebuild)
+)

+ 1 - 1
extra/github-actions/build-mac.yml

@@ -45,7 +45,7 @@
   run: |
     set -ex
     eval $(opam env)
-    opam config exec -- make -s STATICLINK=1 "LIB_PARAMS=\"/usr/local/lib/libz.a\" \"/usr/local/lib/libpcre2-8.a\" \"/usr/local/lib/libmbedtls.a\" \"/usr/local/lib/libmbedcrypto.a\" \"/usr/local/lib/libmbedx509.a\"" haxe
+    opam config exec -- make -s -j`sysctl -n hw.ncpu` STATICLINK=1 "LIB_PARAMS=/usr/local/lib/libz.a /usr/local/lib/libpcre2-8.a /usr/local/lib/libmbedtls.a /usr/local/lib/libmbedcrypto.a /usr/local/lib/libmbedx509.a -cclib '-framework Security -framework CoreFoundation'" haxe
     opam config exec -- make -s haxelib
     make -s package_unix package_installer_mac
     ls -l out

+ 14 - 0
src-prebuild/dune

@@ -0,0 +1,14 @@
+(include_subdirs no)
+
+(env
+	(_
+		(flags (-w -9 -w -32))
+	)
+)
+
+(executable
+	(name prebuild)
+	(public_name haxe_prebuild)
+	(package haxe_prebuild)
+	(libraries extlib json)
+)

+ 5 - 21
src/prebuild.ml → src-prebuild/prebuild.ml

@@ -373,29 +373,13 @@ match Array.to_list (Sys.argv) with
 		print_endline "";
 		print_endline "let from_string = function";
 		print_endline (gen_warning_parse warnings);
-	| [_; "libparams"; os] ->
-		Printf.printf "(";
-		(begin match Sys.getenv_opt "LIB_PARAMS" with
-		| Some params ->
-			Printf.printf "%s" params;
-		| None ->
-			if Sys.win32 then
-				Printf.printf "-cclib -lpcre2-8 -cclib -lz -cclib -lcrypt32 -cclib -lmbedtls -cclib -lmbedcrypto -cclib -lmbedx509"
-			else
-				if Option.is_some (Sys.getenv_opt "STATICLINK") && os <> "macosx" then
-					Printf.printf "-cclib \"-Wl,-Bstatic -lpcre2-8 -lz -lmbedtls -lmbedx509 -lmbedcrypto -Wl,-Bdynamic \""
-				else
-					Printf.printf "-cclib -lpcre2-8 -cclib -lz -cclib -lmbedtls -cclib -lmbedx509 -cclib -lmbedcrypto";
-		end);
-		if os = "macosx" then Printf.printf " -cclib \"-framework Security -framework CoreFoundation\"";
-		Printf.printf ")";
-	| [_ ;"version";] ->
-		begin match Sys.getenv_opt "ADD_REVISION" with
-		| Some "0" | Some "" | None ->
+	| _ :: "libparams" :: params ->
+		Printf.printf "(%s)" (String.concat " " (List.map (fun s -> Printf.sprintf "\"%s\"" s) params))
+	| [_ ;"version";add_revision;branch;sha] ->
+		begin match add_revision with
+		| "0" | "" ->
 			print_endline "let version_extra = None"
 		| _ ->
-			let branch = Stdlib.input_line (Unix.open_process_in "git rev-parse --abbrev-ref HEAD") in
-			let sha = Stdlib.input_line (Unix.open_process_in "git rev-parse --short HEAD") in
 			Printf.printf "let version_extra = Some (\"git build %s\",\"%s\")" branch sha
 		end
 	| args ->

+ 0 - 5
src/compiler/dune

@@ -1,5 +0,0 @@
-(rule
-	(deps (env_var ADD_REVISION))
-	(targets version.ml)
-	(action (with-stdout-to version.ml (run ../prebuild.exe version)))
-)

+ 3 - 3
src/core/dune

@@ -1,17 +1,17 @@
 (rule
 	(targets metaList.ml)
 	(deps ../../src-json/meta.json)
-	(action (with-stdout-to metaList.ml (run ../prebuild.exe meta ../../src-json/meta.json)))
+	(action (with-stdout-to metaList.ml (run %{bin:haxe_prebuild} meta ../../src-json/meta.json)))
 )
 
 (rule
 	(targets defineList.ml)
 	(deps ../../src-json/define.json)
-	(action (with-stdout-to defineList.ml (run ../prebuild.exe define ../../src-json/define.json)))
+	(action (with-stdout-to defineList.ml (run %{bin:haxe_prebuild} define ../../src-json/define.json)))
 )
 
 (rule
 	(targets warningList.ml)
 	(deps ../../src-json/warning.json)
-	(action (with-stdout-to warningList.ml (run ../prebuild.exe warning ../../src-json/warning.json)))
+	(action (with-stdout-to warningList.ml (run %{bin:haxe_prebuild} warning ../../src-json/warning.json)))
 )

+ 2 - 14
src/dune

@@ -23,7 +23,7 @@
 		xml-light extlib sha terminal_size
 		luv
 	)
-	(modules (:standard \ haxe prebuild))
+	(modules (:standard \ haxe))
 	(preprocess (per_module
 		((pps sedlex.ppx) json lexer)
 		((pps ppx_parser) grammar)
@@ -31,25 +31,13 @@
 	(wrapped false)
 )
 
-(executable
-	(name prebuild)
-	(libraries extlib json unix)
-	(modules prebuild)
-)
-
-(rule
-	(deps (env_var STATICLINK) (env_var LIB_PARAMS))
-	(targets libs.sexp)
-	(action (with-stdout-to libs.sexp (run ./prebuild.exe libparams %{system})))
-)
-
 (executable
 	(name haxe)
 	(public_name haxe)
 	(package haxe)
 	(libraries haxe)
 	(modules haxe)
-	(link_flags (:include libs.sexp))
+	(link_flags (:include ../lib.sexp))
 	; Uncomment to enable bytecode output for ocamldebug support
 	; (modes byte)
 )