-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update build_tarballs_release.jl #78
Conversation
Compile Uno with HiGHS for future releases.
@@ -136,6 +137,7 @@ products = [ | |||
|
|||
# Dependencies that must be installed before this package can be built | |||
dependencies = [ | |||
Dependency(PackageSpec(name="HiGHS_jll", uuid="8fd58aa0-07eb-5a78-9b36-339c94fd15ea")), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dependency(PackageSpec(name="HiGHS_jll", uuid="8fd58aa0-07eb-5a78-9b36-339c94fd15ea")), | |
Dependency(PackageSpec(name="HiGHS_jll", uuid="8fd58aa0-07eb-5a78-9b36-339c94fd15ea"), compat="1"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@odow It's not needed in that case because we don't use it in the Julia ecosystem, so the shared libraries can't be automatically upgraded and replaced.
If the CI build with Julia tests passed, it's safe to generate binaries for a use outside Julia when a new release is tagged.
Maybe we should wait until #77? I'd like to know that HiGHS actually works in Uno before merging. Ideally, we would have done the tests and CI changes in the PR that added HiGHS in the first place. |
This issue is that we already merged the PR #75, which is the one that tests |
I know. But currently #75 isn't available to the wider world. If we merge this then the next time that Charlie tags a release, HiGHS will be included. But I think we need to fix HiGHS actually passing tests before we include it in the public releases. |
The build of v1.3.0 (the [13:34:26] /opt/x86_64-w64-mingw32/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld: d000003.o:(.idata$2+0x0): multiple definition of `_head_libhighs_dll'; /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/lib/libhighs.dll.a(d000134.o):(.idata$2+0x0): first defined here
[13:34:26] /opt/x86_64-w64-mingw32/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld: d000004.o:(.idata$5+0x0): multiple definition of `__imp__ZTV17PresolveComponent'; /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/lib/libhighs.dll.a(d003552.o):(.idata$5+0x0): first defined here
[13:34:26] /opt/x86_64-w64-mingw32/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld: d000004.o:(.idata$6+0x0): multiple definition of `__nm__ZTV17PresolveComponent'; /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/lib/libhighs.dll.a(d003552.o):(.idata$6+0x0): first defined here
[13:34:26] /opt/x86_64-w64-mingw32/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld: d000005.o:(.idata$7+0x0): multiple definition of `libhighs_dll_iname'; /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/lib/libhighs.dll.a(d003778.o):(.idata$7+0x0): first defined here
[13:34:26] collect2: error: ld returned 1 exit status Everything went fine during CI. Do you understand what happened? |
On Windows, an additional file is generated: We should try to compile with an older version of We don't need it when using |
I quickly investigated, and it seems that the linker on Windows is using both |
Ahaha I'm sorry to put thankless tasks on you like that :(
although it's available in the C++17 standard: https://en.cppreference.com/w/cpp/utility/optional/value |
@cvanaret |
Do you use the option |
@cvanaret /opt/bin/x86_64-apple-darwin14-libgfortran5-cxx11/x86_64-apple-darwin14-clang++ --sysroot=/opt/x86_64-apple-darwin14/x86_64-apple-darwin14/sys-root -I/workspace/srcdir/Uno/uno -I/workspace/srcdir/Uno/build/include -I/workspace/destdir/lib -I/opt/x86_64-apple-darwin14/x86_64-apple-darwin14/sys-root/usr/local/lib -isystem /opt/x86_64-apple-darwin14/x86_64-apple-darwin14/sys-root/usr/local/include/highs -Wall -Wextra -Wnon-virtual-dtor -pedantic -Wunused-value -Wconversion -O3 -DNDEBUG -mmacosx-version-min=10.10 -fPIC -D HAS_HSL -D HAS_METIS -D HAS_HIGHS -D MUMPS_SEQUENTIAL -D HAS_MUMPS_MPISEQ_LIBRARY -D HAS_MUMPS -D HAS_AMPLSOLVER -fopenmp=libomp -std=gnu++17 -MD -MT CMakeFiles/uno.dir/uno/preprocessing/Scaling.cpp.o -MF CMakeFiles/uno.dir/uno/preprocessing/Scaling.cpp.o.d -o CMakeFiles/uno.dir/uno/preprocessing/Scaling.cpp.o -c /workspace/srcdir/Uno/uno/preprocessing/Scaling.cpp |
I found this related code of the @cvanaret Where can I add |
@amontoison can you try to add: if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
set(MACOSX_DEPLOYMENT_TARGET "10.14" CACHE STRING "Minimum OS X deployment version" FORCE)
endif() somewhere here: https://github.com/cvanaret/Uno/blob/main/CMakeLists.txt#L8? |
I started a PR draft here (#95) but at the moment, I'm not skilled enough :) The Fortran compiler cannot be detected. |
I tried the option and I don't see any difference with or without it. |
Compile Uno with HiGHS for future releases.