Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/v9-minor'
Browse files Browse the repository at this point in the history
  • Loading branch information
scip-ci committed Jun 7, 2024
2 parents 50a80c0 + b841d1b commit 99c3a95
Show file tree
Hide file tree
Showing 39 changed files with 52 additions and 14,249 deletions.
5 changes: 3 additions & 2 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,6 @@ Features
Performance improvements
------------------------

- changed the default symmetry computation package from sassy+bliss to sassy+nauty

Fixed bugs
----------

Expand Down Expand Up @@ -130,6 +128,9 @@ Interface changes
Build system
------------

- changed the default symmetry computation package from sassy+bliss to sassy+nauty
- bliss source is no longer included in the source tree, but can be linked as external library (https://github.com/ds4dm/Bliss)

### Makefile

### Cmake
Expand Down
94 changes: 44 additions & 50 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -124,58 +124,52 @@ set(CMAKE_CXX_STANDARD 14)
#search the selected symmetry computation program
message(STATUS "Finding symmetry computation program \"${SYM}\"")

unset(BLISS_TARGET)
unset(NAUTY_TARGET)
if(SYM STREQUAL "bliss")
message(STATUS "Support SYM: bliss")
set(sym symmetry/compute_symmetry_bliss.cpp)

# modify configuration for bliss
set(BUILD_SHARED_LIBS OFF)
set(TMPFLAGS ${CMAKE_C_FLAGS})
set(TMXFLAGS ${CMAKE_CXX_FLAGS})
set(CMAKE_C_FLAGS -w)
set(CMAKE_CXX_FLAGS -w)

add_subdirectory(src/bliss EXCLUDE_FROM_ALL)

# undo modification
set(CMAKE_C_FLAGS ${TMPFLAGS})
set(CMAKE_CXX_FLAGS ${TMXFLAGS})
set(BUILD_SHARED_LIBS ${SHARED})

set(BLISS_TARGET libbliss)
set(SYM_LIBRARIES libbliss)
set(SYM_PIC_LIBRARIES libbliss)
elseif(SYM STREQUAL "sbliss")
message(STATUS "Support SYM: sassy+bliss")
set(sym symmetry/compute_symmetry_sassy_bliss.cpp symmetry/build_sassy_graph.cpp)

# configure bliss
set(BUILD_SHARED_LIBS OFF)
set(TMPFLAGS ${CMAKE_C_FLAGS})
set(TMXFLAGS ${CMAKE_CXX_FLAGS})
set(CMAKE_C_FLAGS -w)
set(CMAKE_CXX_FLAGS -w)

add_subdirectory(src/bliss EXCLUDE_FROM_ALL)

# undo modification
set(CMAKE_C_FLAGS ${TMPFLAGS})
set(CMAKE_CXX_FLAGS ${TMXFLAGS})
set(BUILD_SHARED_LIBS ${SHARED})

set(BLISS_TARGET libbliss)
set(SYM_LIBRARIES libbliss)
set(SYM_PIC_LIBRARIES libbliss)

# sassy needs C++-17
set(CMAKE_CXX_STANDARD 17)
if(SYM STREQUAL "bliss" OR SYM STREQUAL "sbliss")
if(SYM STREQUAL "bliss")
message(STATUS "Support SYM: bliss")
set(sym symmetry/compute_symmetry_bliss.cpp)
else()
message(STATUS "Support SYM: sassy+bliss")
set(sym symmetry/compute_symmetry_sassy_bliss.cpp symmetry/build_sassy_graph.cpp)
set(CMAKE_CXX_STANDARD 17)
endif()

if(NOT BLISS_INCLUDE_DIR OR NOT BLISS_LIBRARY)
find_path(BLISS_INCLUDE_DIR
NAMES bliss/graph.hh
PATH_SUFFIXES include src)
find_package(Bliss CONFIG HINTS ${BLISS_DIR})
if(Bliss_FOUND)
get_filename_component(BLISS_ABSOLUTE_PATH ${Bliss_DIR}/../../.. REALPATH)
include_directories(${BLISS_ABSOLUTE_PATH}/include)
set(SYM_LIBRARIES ${BLISS_ABSOLUTE_PATH}/lib/libbliss.a)
set(SYM_PIC_LIBRARIES ${BLISS_ABSOLUTE_PATH}/lib/libbliss.a)
message(STATUS "Found Bliss: ${BLISS_ABSOLUTE_PATH}")
else()
# Utilities to automatically download missing dependencies
include(cmake/Dependencies.cmake)
# modify configuration for bliss
set(BUILD_SHARED_LIBS OFF)
set(TMPFLAGS ${CMAKE_C_FLAGS})
set(TMXFLAGS ${CMAKE_CXX_FLAGS})
set(CMAKE_C_FLAGS -w)
set(CMAKE_CXX_FLAGS -w)
find_or_download_package(
NAME Bliss
VERSION 0.77
URL https://github.com/scipopt/bliss/archive/refs/tags/v0.77.tar.gz
URL_HASH SHA256=34c9cec2cb4dd73f881852bd1b1e0429859c8adcc6a61bc0d70a446a23b51d53
COMPONENTS libbliss)
# undo modification
set(CMAKE_C_FLAGS ${TMPFLAGS})
set(CMAKE_CXX_FLAGS ${TMXFLAGS})
set(BUILD_SHARED_LIBS ${SHARED})

find_package(Bliss CONFIG HINTS _deps/local)
if (NOT Bliss_FOUND)
message(FATAL_ERROR "Automatic download of Bliss failed. Please specify the BLISS_DIR.")
endif()
include_directories(${CMAKE_CURRENT_BINARY_DIR}/_deps/local/include)
set(SYM_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/_deps/local/lib/libbliss.a)
set(SYM_PIC_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/_deps/local/lib/libbliss.a)
message(STATUS "Installed Bliss in: ${CMAKE_CURRENT_BINARY_DIR}/_deps/local")
endif()
elseif(SYM STREQUAL "nauty" OR SYM STREQUAL "snauty")
if(NAUTY_DIR)
Expand Down
38 changes: 2 additions & 36 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -342,32 +342,15 @@ SYMOPTIONS += bliss
ifeq ($(SYM),bliss)
SYMOBJ = symmetry/compute_symmetry_bliss.o
SYMOBJFILES = $(addprefix $(LIBOBJDIR)/,$(SYMOBJ))
SYMSRC = $(addprefix $(SRCDIR)/,$(SYMOBJ:.o=.cpp))
ifeq ($(BLISSEXTERNAL),false)
FLAGS += -I$(SRCDIR)/bliss/src -I$(SRCDIR)/bliss/include
BLISSOBJ = bliss/src/abstractgraph.o
BLISSOBJ += bliss/src/bliss_C.o
BLISSOBJ += bliss/src/defs.o
BLISSOBJ += bliss/src/digraph.o
BLISSOBJ += bliss/src/graph.o
BLISSOBJ += bliss/src/orbit.o
BLISSOBJ += bliss/src/partition.o
BLISSOBJ += bliss/src/uintseqhash.o
BLISSOBJ += bliss/src/utils.o
SYMOBJFILES += $(addprefix $(LIBOBJDIR)/,$(BLISSOBJ))
SYMSRC += $(addprefix $(SRCDIR)/,$(BLISSOBJ:.o=.cc))
else
SYMSRC = $(addprefix $(SRCDIR)/,$(SYMOBJ:.o=.cpp))
FLAGS += -I$(LIBDIR)/include/
endif
ALLSRC += $(SYMSRC)
ifeq ($(BLISSEXTERNAL),true)
SOFTLINKS += $(LIBDIR)/include/bliss
ifeq ($(SHARED),true)
SOFTLINKS += $(LIBDIR)/shared/libbliss.$(OSTYPE).$(ARCH).$(COMP).$(SHAREDLIBEXT)
else
SOFTLINKS += $(LIBDIR)/static/libbliss.$(OSTYPE).$(ARCH).$(COMP).$(STATICLIBEXT)
endif
endif
LPIINSTMSG += "\n -> \"blissinc\" is the path to the BLISS directory, e.g., \"<BLISS-path>\".\n"
LPIINSTMSG += " -> \"libbliss.*.a\" is the path to the BLISS library, e.g., \"<BLISS-path>/libbliss.a\"\n"
LPIINSTMSG += " -> \"libbliss.*.so\" is the path to the BLISS library, e.g., \"<BLISS-path>/libbliss.so\""
Expand All @@ -378,32 +361,15 @@ ifeq ($(SYM),sbliss)
SYMOBJ = symmetry/build_sassy_graph.o
SYMOBJ += symmetry/compute_symmetry_sassy_bliss.o
SYMOBJFILES = $(addprefix $(LIBOBJDIR)/,$(SYMOBJ))
SYMSRC = $(addprefix $(SRCDIR)/,$(SYMOBJ:.o=.cpp))
ifeq ($(BLISSEXTERNAL),false)
FLAGS += -I$(SRCDIR)/bliss/src -I$(SRCDIR)/bliss/include
BLISSOBJ = bliss/src/abstractgraph.o
BLISSOBJ += bliss/src/bliss_C.o
BLISSOBJ += bliss/src/defs.o
BLISSOBJ += bliss/src/digraph.o
BLISSOBJ += bliss/src/graph.o
BLISSOBJ += bliss/src/orbit.o
BLISSOBJ += bliss/src/partition.o
BLISSOBJ += bliss/src/uintseqhash.o
BLISSOBJ += bliss/src/utils.o
SYMOBJFILES += $(addprefix $(LIBOBJDIR)/,$(BLISSOBJ))
SYMSRC += $(addprefix $(SRCDIR)/,$(BLISSOBJ:.o=.cc))
else
SYMSRC = $(addprefix $(SRCDIR)/,$(SYMOBJ:.o=.cpp))
FLAGS += -I$(LIBDIR)/include/
endif
ALLSRC += $(SYMSRC)
ifeq ($(BLISSEXTERNAL),true)
SOFTLINKS += $(LIBDIR)/include/bliss
ifeq ($(SHARED),true)
SOFTLINKS += $(LIBDIR)/shared/libbliss.$(OSTYPE).$(ARCH).$(COMP).$(SHAREDLIBEXT)
else
SOFTLINKS += $(LIBDIR)/static/libbliss.$(OSTYPE).$(ARCH).$(COMP).$(STATICLIBEXT)
endif
endif
LPIINSTMSG += "\n -> \"blissinc\" is the path to the BLISS directory, e.g., \"<BLISS-path>\".\n"
LPIINSTMSG += " -> \"libbliss.*.a\" is the path to the BLISS library, e.g., \"<BLISS-path>/libbliss.a\"\n"
LPIINSTMSG += " -> \"libbliss.*.so\" is the path to the BLISS library, e.g., \"<BLISS-path>/libbliss.so\""
Expand Down
11 changes: 0 additions & 11 deletions make/make.project
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,6 @@ SHARED = false
NOBLKMEM = false
NOBUFMEM = false
NOBLKBUFMEM = false
BLISSEXTERNAL = false
NAUTYEXTERNAL = false

# if SHARED = true, nevertheless link to static version of external libraries (usefull for mingw)
Expand Down Expand Up @@ -531,21 +530,11 @@ TPILIBSHORTLINK = $(SCIPREALPATH)/lib/$(LIBTYPE)/lib$(TPILIBNAME).$(LIBEXT)
#-----------------------------------------------------------------------------

ifeq ($(SYM),bliss)
ifeq ($(BLISSEXTERNAL),true)
LDFLAGS += $(LINKCC_L)$(SCIPREALPATH)/$(LIBDIR)/$(LIBEXTTYPE) $(LINKCC_l)bliss.$(OSTYPE).$(ARCH).$(COMP)$(LINKLIBSUFFIX)
else
LIBOBJSUBDIRS += $(LIBOBJDIR)/bliss/src
LIBOBJSUBDIRS += $(LIBOBJDIR)/bliss
endif
endif

ifeq ($(SYM),sbliss)
ifeq ($(BLISSEXTERNAL),true)
LDFLAGS += $(LINKCC_L)$(SCIPREALPATH)/$(LIBDIR)/$(LIBEXTTYPE) $(LINKCC_l)bliss.$(OSTYPE).$(ARCH).$(COMP)$(LINKLIBSUFFIX)
else
LIBOBJSUBDIRS += $(LIBOBJDIR)/bliss/src
LIBOBJSUBDIRS += $(LIBOBJDIR)/bliss
endif
CXXFLAGS += $(CXX17FLAG)
endif

Expand Down
10 changes: 3 additions & 7 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1074,17 +1074,13 @@ if(SHARED)
else()
set(SOPLEX_NEEDED ${SOPLEX_FOUND})
set(ZIMPL_NEEDED ${ZIMPL_FOUND})
if(DEFINED BLISS_TARGET)
target_link_libraries(libscip PRIVATE ${ZIMPL_LIBRARIES} ${LPS_LIBRARIES})
elseif(DEFINED NAUTY_TARGET)
if(DEFINED NAUTY_TARGET)
target_link_libraries(libscip PRIVATE ${ZIMPL_LIBRARIES} ${LPS_LIBRARIES})
else()
target_link_libraries(libscip PRIVATE ${ZIMPL_LIBRARIES} ${LPS_LIBRARIES} ${SYM_LIBRARIES})
endif()
add_executable(scip main.c)
if(DEFINED BLISS_TARGET)
target_link_libraries(scip PUBLIC libscip ${BLISS_TARGET})
elseif(DEFINED NAUTY_TARGET)
if(DEFINED NAUTY_TARGET)
target_link_libraries(scip PUBLIC libscip)
target_link_libraries(scip PRIVATE ${NAUTY_TARGET})
else()
Expand Down Expand Up @@ -1165,7 +1161,7 @@ install(TARGETS scip libscip EXPORT scip-targets
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})

# Add all targets to the build-tree export set
export(TARGETS scip libscip ${BLISS_TARGET} ${NAUTY_TARGET}
export(TARGETS scip libscip ${NAUTY_TARGET}
FILE "${PROJECT_BINARY_DIR}/scip-targets.cmake")

# make soplex and zimpl dir absolute for the config file
Expand Down
47 changes: 0 additions & 47 deletions src/bliss/.gitignore

This file was deleted.

29 changes: 0 additions & 29 deletions src/bliss/CHANGES.txt

This file was deleted.

Loading

0 comments on commit 99c3a95

Please sign in to comment.