Skip to content

Commit

Permalink
Merge pull request #99 from IOHprofiler/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
jacobdenobel authored Sep 24, 2021
2 parents da22d89 + 6ca1dfa commit 31cbd1e
Show file tree
Hide file tree
Showing 1,222 changed files with 132,623 additions and 4,552 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ jobs:
run: |
brew install ninja
python -m pip install --upgrade pip
python setup.py develop
pip install mypy
pip install -e . -v
- name: Run unit tests
run: python -m unittest -v
2 changes: 1 addition & 1 deletion .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ jobs:
sudo apt update -y
sudo apt install ninja-build -y
python -m pip install --upgrade pip
pip install setuptools wheel twine
pip install setuptools wheel twine mypy
- name: Build and publish
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ jobs:
sudo apt update -y
sudo apt install ninja-build -y
python -m pip install --upgrade pip
python setup.py develop
pip install mypy
pip install -e . -v
- name: Run unit tests
run: python -m unittest -v
3 changes: 2 additions & 1 deletion .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ jobs:
- name: Install library
run: |
python -m pip install --upgrade pip
python setup.py develop
pip install mypy
pip install -e . -v
- name: Run unit tests
run: python -m unittest -v
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -178,5 +178,10 @@ cython_debug/

data/

test.py
CMakeSettings.json
.clangd
compile_commands.json
debug
release
ioh_data
run.py
22 changes: 13 additions & 9 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
[submodule "external/pybind11"]
path = external/pybind11
url = ../../pybind/pybind11
branch = stable
[submodule "external/googletest"]
path = external/googletest
url = ../../google/googletest/
branch = v1.10.x
[submodule "external/pybind11"]
path = external/pybind11
url = https://github.com/pybind/pybind11
branch = stable
[submodule "external/googletest"]
path = external/googletest
url = https://github.com/google/googletest
branch = v1.10.x
[submodule "external/fmt"]
path = external/fmt
url = [email protected]:fmtlib/fmt
url = https://github.com/fmtlib/fmt
[submodule "external/clutchlog"]
path = external/clutchlog
url = https://github.com/jacobdenobel/clutchlog.git

9 changes: 5 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Build the ioh library.
##
cmake_minimum_required(VERSION 3.12)
cmake_minimum_required(VERSION 3.12)

project(ioh
VERSION 0.0.0.1
Expand All @@ -23,14 +23,14 @@ if(MSVC)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd ")
endif()

if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -std=c++17 -lstdc++fs")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -ffast-math")
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0)
link_libraries(stdc++fs)
add_compile_definitions(FSEXPERIMENTAL)
endif()
endif()
endif()

# Define project targets.
file(GLOB_RECURSE HEADERS include/ioh *.hpp)
Expand All @@ -48,7 +48,8 @@ add_library(ioh::ioh ALIAS ioh)
add_subdirectory(${EXTERNAL_DIR}/fmt)
target_link_libraries(ioh INTERFACE fmt::fmt-header-only)


# Include external clutchlog lib
include_directories(${EXTERNAL_DIR}/clutchlog)

# Add Python Library
if(ENABLE_PYTHON_PROBLEMS)
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# IOHprofiler: IOHexperimenter
IOHprofiler: IOHexperimenter {#mainpage}
=========

![Ubuntu g++-{10, 9, 8}](https://github.com/IOHprofiler/IOHexperimenter/workflows/Ubuntu/badge.svg)
![MacOS clang++, g++-{9, 8}](https://github.com/IOHprofiler/IOHexperimenter/workflows/MacOS/badge.svg)
![Windows MVSC-2019](https://github.com/IOHprofiler/IOHexperimenter/workflows/Windows/badge.svg)
Expand Down
42 changes: 42 additions & 0 deletions containers/issue94.dockdef
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@

FROM ubuntu

# Dependencies
RUN apt -y update
RUN apt -y install software-properties-common
RUN add-apt-repository universe
RUN apt -y update
RUN apt -y dist-upgrade
RUN apt -y install git g++-8 cmake make
RUN apt clean
RUN update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++-8 80
RUN update-alternatives --set c++ /usr/bin/g++-8

# Temporary directory where we are going to build everything.
RUN tmpdir=$(mktemp -d)
RUN mkdir -p ${tmpdir}/ioh/
WORKDIR ${tmpdir}/ioh/

# Build IOH
RUN git clone --branch analyzer-logger --single-branch --recurse-submodules https://github.com/jdreo/IOHexperimenter.git
WORKDIR ${tmpdir}/ioh/IOHexperimenter
RUN mkdir -p debug
WORKDIR ${tmpdir}/ioh/IOHexperimenter/debug
RUN cmake -D CMAKE_BUILD_TYPE=Debug -D BUILD_TESTS=ON -D BUILD_EXAMPLE=ON -D BUILD_GMOCK=ON ..
RUN make

# Install
RUN mkdir -p /usr/local/opt/ioh
RUN cp tests/test_* /usr/local/opt/ioh/

# Clean-up
RUN rm -rf ${tmpdir}

# keep cmake to run ctest
RUN apt -y purge software-properties-common git g++-8 make
RUN apt -y --purge autoremove
RUN apt -y autoclean
RUN apt clean

WORKDIR /usr/local/opt/ioh/
CMD ['/usr/local/opt/ioh/test_store']
2 changes: 2 additions & 0 deletions containers/issue94.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
docker build -f issue94.dockdef -t ioh/issue94 .
docker run -t ioh/issue94 /usr/local/opt/ioh/test_store --gtest_filter=BaseTest.store_properties XDebug
6 changes: 3 additions & 3 deletions doc/CmakeLists.txt → doc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ find_package(Sphinx REQUIRED)

#This will be the main output of our command
set(DOXYGEN_INPUT_DIR ${PROJECT_SOURCE_DIR}/include)
set(DOXYGEN_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/doxygen)
set(DOXYGEN_INDEX_FILE ${DOXYGEN_OUTPUT_DIR}/html/index.html)
set(DOXYGEN_OUTPUT_DIR ${PROJECT_SOURCE_DIR}/docs)
set(DOXYGEN_INDEX_FILE ${DOXYGEN_OUTPUT_DIR}/index.html)
set(DOXYFILE_IN ${CMAKE_CURRENT_SOURCE_DIR}/doxygen/Doxyfile.in)
set(DOXYFILE_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)

Expand All @@ -20,7 +20,7 @@ add_custom_command(OUTPUT ${DOXYGEN_INDEX_FILE}
VERBATIM
)

add_custom_target(Doxygen ALL DEPENDS ${DOXYGEN_INDEX_FILE})
add_custom_target(doc ALL DEPENDS ${DOXYGEN_INDEX_FILE})

## Sphinx
set(SPHINX_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/sphinx)
Expand Down
41 changes: 13 additions & 28 deletions doc/doxygen/Doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places.
# The default value is: My Project.

PROJECT_NAME = "ioh"
PROJECT_NAME = "IOH"

# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
Expand All @@ -44,7 +44,7 @@ PROJECT_NUMBER = "0.0.0.1"
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.

PROJECT_BRIEF =
PROJECT_BRIEF = "Experimentation procedure for Iterative Optimization Heuristics"

# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
Expand Down Expand Up @@ -143,7 +143,7 @@ ALWAYS_DETAILED_SEC = NO
# operators of the base classes will not be shown.
# The default value is: NO.

INLINE_INHERITED_MEMB = NO
INLINE_INHERITED_MEMB = YES

# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
# before files name in the file list and in the header files. If set to NO the
Expand Down Expand Up @@ -187,7 +187,7 @@ SHORT_NAMES = NO
# description.)
# The default value is: NO.

JAVADOC_AUTOBRIEF = NO
JAVADOC_AUTOBRIEF = YES

# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
# line (until the first dot) of a Qt-style comment as the brief description. If
Expand Down Expand Up @@ -441,7 +441,7 @@ EXTRACT_ALL = NO
# be included in the documentation.
# The default value is: NO.

EXTRACT_PRIVATE = YES
EXTRACT_PRIVATE = NO

# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
# scope will be included in the documentation.
Expand Down Expand Up @@ -590,7 +590,7 @@ SORT_BRIEF_DOCS = NO
# detailed member documentation.
# The default value is: NO.

SORT_MEMBERS_CTORS_1ST = NO
SORT_MEMBERS_CTORS_1ST = YES

# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
# of group names into alphabetical order. If set to NO the group names will
Expand Down Expand Up @@ -982,7 +982,7 @@ FILTER_SOURCE_PATTERNS =
# (index.html). This can be useful if you have a project on for instance GitHub
# and want to reuse the introduction page also for the doxygen output.

USE_MDFILE_AS_MAINPAGE =
USE_MDFILE_AS_MAINPAGE = README.MD

#---------------------------------------------------------------------------
# Configuration options related to source browsing
Expand Down Expand Up @@ -1111,7 +1111,7 @@ GENERATE_HTML = YES
# The default directory is: html.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_OUTPUT = html
HTML_OUTPUT = .

# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
# generated HTML page (for example: .htm, .php, .asp).
Expand Down Expand Up @@ -1222,7 +1222,7 @@ HTML_COLORSTYLE_GAMMA = 80
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_TIMESTAMP = NO
HTML_TIMESTAMP = YES

# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
Expand Down Expand Up @@ -1459,7 +1459,7 @@ DISABLE_INDEX = NO
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

GENERATE_TREEVIEW = NO
GENERATE_TREEVIEW = YES

# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
# doxygen will group on one line in the generated HTML documentation.
Expand All @@ -1483,7 +1483,7 @@ TREEVIEW_WIDTH = 250
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

EXT_LINKS_IN_WINDOW = NO
EXT_LINKS_IN_WINDOW = YES

# Use this tag to change the font size of LaTeX formulas included as images in
# the HTML documentation. When you change the font size after a successful
Expand Down Expand Up @@ -1514,7 +1514,7 @@ FORMULA_TRANSPARENT = YES
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

USE_MATHJAX = NO
USE_MATHJAX = YES

# When MathJax is enabled you can set the default output format to be used for
# the MathJax output. See the MathJax site (see:
Expand Down Expand Up @@ -1927,7 +1927,7 @@ MAN_LINKS = NO
# captures the structure of the code including all documentation.
# The default value is: NO.

GENERATE_XML = YES
GENERATE_XML = NO

# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
Expand Down Expand Up @@ -2147,12 +2147,6 @@ EXTERNAL_GROUPS = YES

EXTERNAL_PAGES = YES

# The PERL_PATH should be the absolute path and name of the perl script
# interpreter (i.e. the result of 'which perl').
# The default file (with absolute path) is: /usr/bin/perl.

PERL_PATH = /usr/bin/perl

#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
Expand All @@ -2166,15 +2160,6 @@ PERL_PATH = /usr/bin/perl

CLASS_DIAGRAMS = YES

# You can define message sequence charts within doxygen comments using the \msc
# command. Doxygen will then run the mscgen tool (see:
# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
# documentation. The MSCGEN_PATH tag allows you to specify the directory where
# the mscgen tool resides. If left empty the tool is assumed to be found in the
# default search path.

MSCGEN_PATH =

# You can include diagrams made with dia in doxygen documentation. Doxygen will
# then run dia to produce the diagram and insert it in the documentation. The
# DIA_PATH tag allows you to specify the directory where the dia binary resides.
Expand Down
Binary file added doc/logger_architecture.dia
Binary file not shown.
Loading

0 comments on commit 31cbd1e

Please sign in to comment.