authorgravatar for bratishkaerik@getgoogleoff.meEric Joldasov <bratishkaerik@getgoogleoff.me> 2022-10-01 22:58:09+06:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-10-18 16:52:43-07:00
log10132126972604c4636b148df27ab7fe9e50136b
tree2ece6b16d97e9d9a00e0b3790f478c0ed90d0b2f
parent14c173b2009806e3f408bb8a56f11501bda52820

cmake: separate installing and building (again)


2 files changed, 34 insertions(+), 11 deletions(-)

CMakeLists.txt+10-11
......@@ -1017,9 +1017,9 @@ if("${ZIG_EXECUTABLE}" STREQUAL "")
10171017 WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
10181018 )
10191019 if (WIN32)
1020 set(ZIG_EXECUTABLE "${zig2_BINARY_DIR}/zig2.exe")
1020 set(ZIG_EXECUTABLE "${CMAKE_BINARY_DIR}/zig2.exe")
10211021 else()
1022 set(ZIG_EXECUTABLE "${zig2_BINARY_DIR}/zig2")
1022 set(ZIG_EXECUTABLE "${CMAKE_BINARY_DIR}/zig2")
10231023 endif()
10241024else()
10251025 add_custom_command(
......@@ -1045,15 +1045,8 @@ elseif(MINGW)
10451045 target_link_libraries(zig2 ntdll)
10461046endif()
10471047
1048# Dummy install command so that the "install" target is not missing.
1049# This is redundant from the "stage3" custom target below.
1050if(NOT ZIG_SKIP_INSTALL_LIB_FILES)
1051 install(FILES "lib/compiler_rt.zig" DESTINATION "lib/zig")
1052endif()
1053
1054set(ZIG_INSTALL_ARGS "build"
1048set(ZIG_BUILD_ARGS "build"
10551049 --zig-lib-dir "${CMAKE_SOURCE_DIR}/lib"
1056 --prefix "${CMAKE_INSTALL_PREFIX}"
10571050 "-Dconfig_h=${ZIG_CONFIG_H_OUT}"
10581051 "-Denable-llvm"
10591052 "-Denable-stage1"
......@@ -1067,8 +1060,14 @@ set(ZIG_INSTALL_ARGS "build"
10671060)
10681061
10691062add_custom_target(stage3 ALL
1070 COMMAND zig2 ${ZIG_INSTALL_ARGS}
1063 COMMAND zig2 ${ZIG_BUILD_ARGS}
10711064 DEPENDS zig2
10721065 COMMENT STATUS "Building stage3"
10731066 WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
10741067)
1068
1069install(CODE "set(ZIG_EXECUTABLE \"${ZIG_EXECUTABLE}\")")
1070install(CODE "set(ZIG_BUILD_ARGS \"${ZIG_BUILD_ARGS}\")")
1071install(CODE "set(CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")")
1072install(CODE "set(CMAKE_SOURCE_DIR \"${CMAKE_SOURCE_DIR}\")")
1073install(SCRIPT "${CMAKE_SOURCE_DIR}/cmake/install.cmake")
cmake/install.cmake created+24
......@@ -0,0 +1,24 @@
1set(ZIG_INSTALL_ARGS ${ZIG_BUILD_ARGS} --prefix "${CMAKE_INSTALL_PREFIX}")
2execute_process(COMMAND "${ZIG_EXECUTABLE}" ${ZIG_INSTALL_ARGS} WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" RESULT_VARIABLE _result)
3
4if(_result)
5 message("::")
6 message(":: ERROR: ${_result}")
7 message(":: (execute_process)")
8
9 list(JOIN ZIG_INSTALL_ARGS " " s_INSTALL_LIBSTAGE2_ARGS)
10 message("::")
11 message(":: argv: ${ZIG_EXECUTABLE} ${s_INSTALL_LIBSTAGE2_ARGS}")
12
13 set(_args ${ZIG_EXECUTABLE} ${ZIG_INSTALL_ARGS})
14 list(LENGTH _args _len)
15 math(EXPR _len "${_len} - 1")
16 message("::")
17 foreach(_i RANGE 0 ${_len})
18 list(GET _args ${_i} _arg)
19 message(":: argv[${_i}]: ${_arg}")
20 endforeach()
21
22 message("::")
23 message(FATAL_ERROR)
24endif()