Skip to content

Commit a71544c

Browse files
authored
Merge pull request #6 from scarrazza/cmake_implementation
adding cmake implementation
2 parents d3bdaca + e6968b7 commit a71544c

34 files changed

+159
-47581
lines changed

.travis.yml

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# travis CI script
2+
os: linux
3+
language: cpp
4+
sudo: required
5+
6+
addons:
7+
apt:
8+
sources:
9+
- ubuntu-toolchain-r-test
10+
packages:
11+
- cmake
12+
- g++-5
13+
- gcc-5
14+
15+
install:
16+
- sudo unlink /usr/bin/gcc && sudo ln -s /usr/bin/gcc-5 /usr/bin/gcc
17+
- sudo unlink /usr/bin/g++ && sudo ln -s /usr/bin/g++-5 /usr/bin/g++
18+
19+
script:
20+
- mkdir build
21+
- cd build
22+
- cmake -DENABLE_EXAMPLES=ON ..
23+
- make
24+
- ./trigger_test
25+
- ./cmass_test
26+
- ./cache_test
27+

AUTHORS

-3
This file was deleted.

CMakeLists.txt

+110
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
cmake_minimum_required (VERSION 3.0.2)
2+
3+
# Disable the use of RPATHS - we probably are not
4+
# that interested in relocatable binaries and it
5+
# causes a lot of trouble on macOS
6+
SET(CMAKE_SKIP_RPATH TRUE)
7+
8+
# Set a default build type if none was specified
9+
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
10+
message(STATUS "Setting build type to 'Release' as none was specified.")
11+
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
12+
# Set the possible values of build type for cmake-gui
13+
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release"
14+
"MinSizeRel" "RelWithDebInfo")
15+
endif()
16+
17+
project(qcdloop)
18+
19+
set(CMAKE_CXX_STANDARD 11)
20+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
21+
set(CMAKE_CXX_EXTENSIONS OFF)
22+
set(VERSION "\"2.0.4\"")
23+
set(CMAKE_CXX_FLAGS "-Wall -Wextra -march=nocona -mtune=haswell -fvisibility-inlines-hidden -fmessage-length=0 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -fext-numeric-literals")
24+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address -fPIC ${CMAKE_CXX_FLAGS}" CACHE STRING "debug compile flags" FORCE)
25+
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "-fsanitize=address" CACHE STRING "debug linker flags" FORCE)
26+
set(prefix ${CMAKE_INSTALL_PREFIX})
27+
set(exec_prefix "${prefix}")
28+
set(includedir "${prefix}/include")
29+
set(libdir "${prefix}/lib")
30+
31+
configure_file(
32+
"${PROJECT_SOURCE_DIR}/src/qcdloop/config.h.in"
33+
"${PROJECT_SOURCE_DIR}/src/qcdloop/config.h"
34+
)
35+
36+
configure_file(
37+
"${PROJECT_SOURCE_DIR}/src/qcdloop-config.in"
38+
"${PROJECT_BINARY_DIR}/src/qcdloop-config"
39+
)
40+
41+
configure_file(
42+
"${PROJECT_SOURCE_DIR}/src/qcdloop.pc.in"
43+
"${PROJECT_SOURCE_DIR}/src/qcdloop.pc"
44+
)
45+
46+
set(QUADMATH_NAMES ${QUADMATH_NAMES} libquadmath.so quadmath)
47+
find_library(QUADMATH_LIBRARY
48+
NAMES ${QUADMATH_NAMES}
49+
PATHS /usr/lib64/atlas /usr/lib/atlas
50+
/usr/lib64 /usr/lib /usr/local/lib64
51+
/usr/local/lib /usr/x86_64-linux-gnu/*
52+
/usr/lib/gcc/x86_64-linux-gnu/*
53+
)
54+
55+
if(QUADMATH_LIBRARY)
56+
set(QUADMATH_LIBRARIES ${QUADMATH_LIBRARY})
57+
set(QUADMATH_FOUND "YES")
58+
else(QUADMATH_LIBRARY)
59+
set(QUADMATH_FOUND "NO")
60+
endif(QUADMATH_LIBRARY)
61+
62+
if(QUADMATH_FOUND)
63+
if(NOT QUADMATH_FIND_QUIETLY)
64+
message(STATUS "Found QUADMATH: ${QUADMATH_LIBRARIES}")
65+
endif(NOT QUADMATH_FIND_QUIETLY)
66+
else(QUADMATH_FOUND)
67+
if(QUADMATH_FIND_REQUIRED)
68+
message(FATAL_ERROR "Could not find QuadMath")
69+
endif(QUADMATH_FIND_REQUIRED)
70+
endif(QUADMATH_FOUND)
71+
72+
# libqcdloop configuration
73+
include_directories(src/qcdloop src)
74+
FILE(GLOB_RECURSE Headers "src/qcdloop/*.h")
75+
add_library(qcdloop SHARED src/box.cc
76+
src/bubble.cc
77+
src/cache.cc
78+
src/qcdloop.cc
79+
src/tadpole.cc
80+
src/tools.cc
81+
src/topology.cc
82+
src/triangle.cc
83+
src/types.cc
84+
src/wrapper.cc
85+
${Headers}
86+
)
87+
88+
target_link_libraries(qcdloop)
89+
install(FILES ${CMAKE_BINARY_DIR}/src/qcdloop-config
90+
DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
91+
GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
92+
install(FILES ${PROJECT_SOURCE_DIR}/src/qcdloop.pc DESTINATION lib/pkgconfig)
93+
install(DIRECTORY src/qcdloop DESTINATION include)
94+
install(TARGETS qcdloop DESTINATION lib)
95+
96+
# qcdloop examples
97+
option(ENABLE_EXAMPLES "Compile test examples" OFF)
98+
if(ENABLE_EXAMPLES)
99+
add_executable(cache_test examples/cache_test.cc)
100+
target_link_libraries(cache_test qcdloop ${QUADMATH_LIBRARIES})
101+
set_target_properties(cache_test PROPERTIES LINK_FLAGS "-Wl,-rpath,./")
102+
103+
add_executable(cmass_test examples/cmass_test.cc)
104+
target_link_libraries(cmass_test qcdloop ${QUADMATH_LIBRARIES})
105+
set_target_properties(cmass_test PROPERTIES LINK_FLAGS "-Wl,-rpath,./")
106+
107+
add_executable(trigger_test examples/trigger_test.cc)
108+
target_link_libraries(trigger_test qcdloop ${QUADMATH_LIBRARIES})
109+
set_target_properties(trigger_test PROPERTIES LINK_FLAGS "-Wl,-rpath,./")
110+
endif()

0 commit comments

Comments
 (0)