diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f47f88a4e7..1c972d8146 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -319,6 +319,7 @@ endif() # export all symbols for the interpreter if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") set(LEANC_SHARED_LINKER_FLAGS "${LEANC_SHARED_LINKER_FLAGS} -Wl,--export-all") + set(LEANSHARED_LINKER_FLAGS "${LEANSHARED_LINKER_FLAGS} -Wl,--export-all") else() set(LEANC_STATIC_LINKER_FLAGS "${LEANC_STATIC_LINKER_FLAGS} -ldl") set(LEANC_SHARED_LINKER_FLAGS "${LEANC_SHARED_LINKER_FLAGS} -ldl") @@ -441,7 +442,7 @@ if(PREV_STAGE) else() set(LEANSHARED_LINKER_FLAGS "-Wl,--whole-archive -lInit -lStd -lLean -lleancpp -Wl,--no-whole-archive") if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") - set(LEANSHARED_LINKER_FLAGS "${LEANSHARED_LINKER_FLAGS} --out-implib ${CMAKE_BINARY_DIR}/bin/libleanshared.dll.a") + set(LEANSHARED_LINKER_FLAGS "${LEANSHARED_LINKER_FLAGS} -Wl,--out-implib,${CMAKE_BINARY_DIR}/bin/libleanshared.dll.a") endif() endif() diff --git a/src/stdlib.make.in b/src/stdlib.make.in index 904dcf9bac..eff033f2ad 100644 --- a/src/stdlib.make.in +++ b/src/stdlib.make.in @@ -37,7 +37,8 @@ Lean: Init Std leanshared: Init Std Lean @mkdir -p "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" || true - "${LEAN_BIN}/leanc" -shared -o "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libleanshared${CMAKE_SHARED_LIBRARY_SUFFIX}" ${LEANSHARED_LINKER_FLAGS} +# can't use leanc here since it would try to link against leanshared + "$LEAN_CXX" -shared -o "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libleanshared${CMAKE_SHARED_LIBRARY_SUFFIX}" ${LEANSHARED_LINKER_FLAGS} Leanpkg: Init Std Lean leanshared +"${LEAN_BIN}/leanmake" bin PKG=Leanpkg BIN_NAME=leanpkg${CMAKE_EXECUTABLE_SUFFIX} $(LEANMAKE_OPTS) LINK_OPTS='-lleanshared ${CMAKE_EXE_LINKER_FLAGS_MAKE}'