Giter Club home page Giter Club logo

cinch's People

Contributors

apphys avatar cferenba avatar charest avatar cmsquared avatar dmringo avatar elliottslaughter avatar gshipman avatar hkaiser avatar jlippuner avatar julienloiseau avatar junghans avatar korobkin avatar ktsai7 avatar ollielo avatar rfbird avatar rspavel avatar staleylanl avatar timmah avatar tuxfan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cinch's Issues

Drop library.cmake

The only reason we have library.cmake is to install PUBLIC_HEADERS, let's move that somewhere else!

Improve cmake version check

With removing the main symlink cmake_minimum_required(VERSION 3.0) in CMakeLists.txt is useless and should be replace with a check again CMAKE_VERSION.

#include "lapacke.h" causes weird cinchlog compile error

When I #include "lapacke.h" in my task.h file, I get the following compile error with gcc 7.3.0:
In file included from /home/bement/ristra/flecsale-mm/flecsi/flecsi/data/sparse_accessor.h:20:0, from /home/bement/ristra/flecsale-mm/specializations/flecsi-sp/utils/types.h:5, from /home/bement/ristra/flecsale-mm/apps/dsd/2d/../types.h:21, from /home/bement/ristra/flecsale-mm/apps/dsd/2d/inputs.h:13, from /home/bement/ristra/flecsale-mm/apps/dsd/2d/driver.cc:11: /home/bement/ristra/flecsale-mm/cinch/logging/cinchlog.h:1373:24: error: expected unqualified-id before ‘if’ #define clog(severity) if(true) {} else std::cerr ^ /home/bement/ristra/flecsale-mm/cinch/logging/cinchlog.h:1373:36: error: expected unqualified-id before ‘else’ #define clog(severity) if(true) {} else std::cerr

Finding LAPACKE requires defining LAPACKE_LIBRARY explicitly

I am unable to get cinch to find LAPACKE by the following two methods:

  1. Using -DLAPACKE_DIR:FILEPATH=$HOME/packages/lapack/lib/cmake/lapacke-3.7.1 to point to the location where LAPACKE installation has stored a cmake config file

  2. Defining -DLAPACKE_LIBRARY_DIRS and -DLAPACKE_INCLUDE_DIR

Instead I have to explicitly define -DLAPACKE_LIBRARY:FILEPATH=............/liblapacke.a

I believe the issue may be that LAPACKE_LIBRARY_DIRS variable is not being used to find the library within cinch.

Portage is using a version of cinch with the hash 979afeb

cinch installing cinchlog.h in client installation

When I do a make install, cinch is putting cinchlog.h in the install location along with all the client's include files. The command for this is appearing in install_manifest.txt after configuring the build with cmake

Libscotcherr needs to be linked on Fedora

@junghans

Libscotcherr is not automatically linked to libscotch on Fedora. We have to put the it back to the list of libraries to be linked.

[root@34023565b273 build]# ls /usr/lib64/libscotch*
/usr/lib64/libscotch.so      /usr/lib64/libscotcherr.so      /usr/lib64/libscotcherrexit.so      /usr/lib64/libscotchmetis.so
/usr/lib64/libscotch.so.0    /usr/lib64/libscotcherr.so.0    /usr/lib64/libscotcherrexit.so.0    /usr/lib64/libscotchmetis.so.0
/usr/lib64/libscotch.so.0.2  /usr/lib64/libscotcherr.so.0.2  /usr/lib64/libscotcherrexit.so.0.2  /usr/lib64/libscotchmetis.so.0.2
[root@34023565b273 build]# ldd /usr/lib64/libscotch.so
    linux-vdso.so.1 (0x00007ffddc24c000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f3435952000)
    libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f3435742000)
    liblzmadec.so.0 => /lib64/liblzmadec.so.0 (0x00007f343553d000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f343523b000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f3435033000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3434e15000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f3434a54000)
    /lib64/ld-linux-x86-64.so.2 (0x000055e937795000)

Cinch version

We need an embedded Cinch version that can be checked by the runtime (Cinch's) to analyze the submodule tree for inconsistencies. Also need to add a version macro so that user's can set a minimum required version.

Missing return values in logging

Found by clang:

/home/flecsi/flecsi/cinch/gtest-auxiliary/../logging/cinchlog.h:311:3: warning: control may reach end of non-void function [-Wreturn-type]
  }
  ^
/home/flecsi/flecsi/cinch/gtest-auxiliary/../logging/cinchlog.h:430:3: warning: control reaches end of non-void function [-Wreturn-type]
  }
  ^
/home/flecsi/flecsi/cinch/gtest-auxiliary/../logging/cinchlog.h:443:3: warning: control reaches end of non-void function [-Wreturn-type]
  }
  ^
3 warnings generated.

FindLAPACKE picking up system lapack and blas

When I try to find LAPACKE libraries using cinch's FindLAPACKE module on varan/barugon on the xlan, it is picking up the right lapacke library (as specified by the PC_LAPACKE_INCLUDE_DIRS and PC_LAPACKE_LIBRARY_DIRS) but it is picking up system versions of LAPACK and BLAS. This is causing warnings and undefined symbols.

Format is too greedy

Format needs to be restricted from submodules, and potentially tutorial directories. I suggest adding an optional EXCLUDE parameter, and allowing the project to specifically add the format option, e.g., in config/project.cmake:

cinch_add_format(FleCSI EXCLUDE cinch flecsi-tutorials)

This would add a target 'format-FleCSI' that would ignore cinch and flecsi-tutorials.

Add option to build shared libraries

option(BUILD_SHARED_LIBS "Build shared libs" OFF)

Default still needs to be discussed, but ON would certainly be the better option for easier dependency tracking as shared libraries contain link information.

Regression testing

Is this something that is planned? Run some executable, and diff some output?

cinch creates install target for gtest/gmock headers and libraries

This was found in laristra/flecsi#45, issue being that multiple project using cinch will each install their own gtest lib and then overwrite each others.

The problem boils down to the fact in ProjectLists.txt line 212 we do

add_subdirectory(cinch/gtest)

and hence all target get inherit from the cmake buildsystem of gtest.

Looking at gtest's documentation one should create a own library target using:

${GTEST_DIR}/src/gtest-all.cc

/cc @ddaniel @tuxfan

multiple cinch projects

Installed portage first, then tried to build flecsale, point CMAKE_PREFIX_PATH to the location of the portage install. Since portage is a cinch project, it installs cinch headers. Since flecsale is a cinch project, it includes cinch headers. I get multiple definition errors because of the failure of #pragma once to identify #include <cinchlog.h> and #include "../logging/cinchlog.h" in cinchtest.h. Not too sure the best way to resolve this. I could replace pragma once in cinch with include guards, but I think portage is locked into their cinch version for now? Note that this doesnt happen if portage is a submodule of flecsale.

@junghans @cmsquared @tuxfan @cferenba any ideas of the best solution?

In file included from /users/charest/scratch/flecsale-super/flecsale/flecsi/flecsi/utils/dag.h:10:0,
from /users/charest/scratch/flecsale-super/flecsale/flecsi/flecsi/control/control.h:23,
from /users/charest/scratch/flecsale-super/flecsale/flecsi/flecsi/control/test/control.cc:10:
/users/charest/scratch/flecsale-super/build/install/include/cinchlog.h: In function 'std::__cxx11::string cinch::timestamp(bool)':
/users/charest/scratch/flecsale-super/build/install/include/cinchlog.h:181:1: error: redefinition of 'std::__cxx11::string cinch::timestamp(bool)'
timestamp(bool underscores = false)
^~~~~~~~~
In file included from /users/charest/scratch/flecsale-super/flecsale/cinch/auxiliary/cinchtest.h:9:0,
from /users/charest/scratch/flecsale-super/flecsale/flecsi/flecsi/control/test/control.cc:9:
/users/charest/scratch/flecsale-super/flecsale/cinch/auxiliary/../logging/cinchlog.h:231:1: note: 'std::__cxx11::string cinch::timestamp(bool)' previously defined here
timestamp(bool underscores = false)
^~~~~~~~~

Tag cleanup

The current tags are

$ git tag
0.0
1.0
1.0-beta
v2.0

1.0 was recently moved from an old hash. 1.0-beta and v2.0 both point to old hashes - from 2015 and 2017, respectively.

Are 0.0 and 1.0 fixed now? Does anyone object to my removing 1.0-beta and v2.0 to avoid confusion?

CMAKE_BUILD_TYPE

Setting build type to 'Release' can cause cmake to error with "CMAKE_BUILD_TYPE: CMake build type <Debug|Release|RelWithDebInfo|MinSizeRel>"

make install fails with ENABLE_DOXYGEN=on for nested projects

For a nested build, make install fails when ENABLE_DOXYGEN=on because make doxygen for the super-project does build the documentation of sub-projects. For example, building flecsale, which uses flecsi as a cinch subproject, with

cmake ... -DENABLE_DOXYGEN=on ...
make doxygen
make install

gives

CMake Error at flecsi/cmake_install.cmake:56 (file)
  file INSTALL cannot find
  "flecsale/build/doc/flecsi/doxygen". 
Call Stack (most recent call first):
  cmake_install.cmake:377 (include)

Add coverage option

flecsi/flecsi@250be9f:

--- a/config/project.cmake
+++ b/config/project.cmake
@@ -58,6 +58,15 @@ if (NOT TPL_INSTALL_PREFIX STREQUAL "")
   set(SCOTCH_ROOT ${TPL_INSTALL_PREFIX})
 endif()

+option(USE_GCOV "Enable gcov support" OFF)
+if(USE_GCOV)
+  message(STATUS "Enabling gcov support")
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage -O0")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage -O0")
+  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
+  set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --coverage")
+endif()
+
 #~---------------------------------------------------------------------------~-#
 # Formatting options
 # vim: set tabstop=2 shiftwidth=2 expandtab :

and lanl/vpic@77712b7 is a duplication.

Make coverage a global option in cinch.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.