Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
dssp
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open
dssp
Commits
dd8a9c3c
Unverified
Commit
dd8a9c3c
authored
Aug 15, 2023
by
Maarten L. Hekkelman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactored into a lib and an executable
parent
833a10f3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
207 additions
and
427 deletions
+207
-427
.gitignore
+1
-0
CMakeLists.txt
+4
-93
cmake/GetGitRevisionDescription.cmake
+0
-284
cmake/GetGitRevisionDescription.cmake.in
+0
-43
cmake/VersionString.cmake
+0
-0
libdssp/CMakeLists.txt
+194
-0
libdssp/cmake/dsspConfig.cmake.in
+0
-0
libdssp/cmake/libdssp.pc.in
+0
-0
libdssp/include/dssp.hpp
+0
-0
libdssp/mmcif_pdbx/dssp-extension.dic
+0
-0
libdssp/src/dssp-io.cpp
+7
-6
libdssp/src/dssp-io.hpp
+0
-0
libdssp/src/dssp.cpp
+0
-0
test/unit-test-dssp.cpp
+1
-1
No files found.
.gitignore
View file @
dd8a9c3c
...
...
@@ -4,3 +4,4 @@ build/
.gdb_history
**/*.dssp
src/revision.hpp
libdssp/src/revision.hpp
CMakeLists.txt
View file @
dd8a9c3c
...
...
@@ -108,23 +108,7 @@ if(NOT PDB_REDO_META)
find_package
(
cifpp 5.1.0 REQUIRED
)
endif
()
# The DSSP code is in a separate library, optionally to be used by others
add_library
(
dssp
${
PROJECT_SOURCE_DIR
}
/src/dssp.cpp
${
PROJECT_SOURCE_DIR
}
/include/dssp.hpp
${
PROJECT_SOURCE_DIR
}
/src/dssp-io.cpp
${
PROJECT_SOURCE_DIR
}
/src/dssp-io.hpp
)
add_library
(
dssp::dssp ALIAS dssp
)
target_link_libraries
(
dssp PUBLIC cifpp::cifpp
)
target_include_directories
(
dssp
PUBLIC
"$<BUILD_INTERFACE:
${
PROJECT_SOURCE_DIR
}
/include>"
"$<INSTALL_INTERFACE:
${
CMAKE_INSTALL_INCLUDEDIR
}
>"
)
add_subdirectory
(
libdssp
)
add_executable
(
mkdssp
${
PROJECT_SOURCE_DIR
}
/src/mkdssp.cpp
)
...
...
@@ -134,87 +118,14 @@ if(USE_RSRC)
mrc_target_resources
(
mkdssp
${
CIFPP_SHARE_DIR
}
/mmcif_pdbx.dic
${
CIFPP_SHARE_DIR
}
/mmcif_ddl.dic
${
PROJECT_SOURCE_DIR
}
/mmcif_pdbx/dssp-extension.dic
)
${
PROJECT_SOURCE_DIR
}
/
libdssp/
mmcif_pdbx/dssp-extension.dic
)
endif
()
# Install rules
install
(
TARGETS dssp
EXPORT dsspTargets
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
INCLUDES DESTINATION
${
CMAKE_INSTALL_INCLUDEDIR
}
)
if
(
MSVC AND BUILD_SHARED_LIBS
)
install
(
FILES $<TARGET_PDB_FILE:
${
PROJECT_NAME
}
>
DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
OPTIONAL
)
endif
()
install
(
EXPORT dsspTargets
FILE
"dsspTargets.cmake"
NAMESPACE dssp::
DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
/cmake/dssp
)
install
(
FILES include/dssp.hpp
DESTINATION
${
CMAKE_INSTALL_INCLUDEDIR
}
COMPONENT Devel
)
set
(
CONFIG_TEMPLATE_FILE
${
PROJECT_SOURCE_DIR
}
/cmake/dsspConfig.cmake.in
)
configure_package_config_file
(
${
CONFIG_TEMPLATE_FILE
}
${
CMAKE_CURRENT_BINARY_DIR
}
/dssp/dsspConfig.cmake
INSTALL_DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
/cmake/dssp
)
install
(
FILES
"
${
CMAKE_CURRENT_BINARY_DIR
}
/dssp/dsspConfig.cmake"
"
${
CMAKE_CURRENT_BINARY_DIR
}
/dssp/dsspConfigVersion.cmake"
DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
/cmake/dssp
COMPONENT Devel
)
set
(
dssp_MAJOR_VERSION
${
CMAKE_PROJECT_VERSION_MAJOR
}
)
set_target_properties
(
dssp PROPERTIES
VERSION
${
PROJECT_VERSION
}
SOVERSION
${
dssp_MAJOR_VERSION
}
INTERFACE_dssp_MAJOR_VERSION
${
dssp_MAJOR_VERSION
}
)
set_property
(
TARGET dssp APPEND PROPERTY
COMPATIBLE_INTERFACE_STRING dssp_MAJOR_VERSION
)
write_basic_package_version_file
(
"
${
CMAKE_CURRENT_BINARY_DIR
}
/dssp/dsspConfigVersion.cmake"
VERSION
${
PROJECT_VERSION
}
COMPATIBILITY AnyNewerVersion
)
# pkgconfig support
set
(
prefix
${
CMAKE_INSTALL_PREFIX
}
)
set
(
exec_prefix
${
CMAKE_INSTALL_PREFIX
}
)
set
(
libdir
${
CMAKE_INSTALL_PREFIX
}
/
${
CMAKE_INSTALL_LIBDIR
}
)
set
(
includedir
${
CMAKE_INSTALL_PREFIX
}
/
${
CMAKE_INSTALL_INCLUDEDIR
}
)
configure_file
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake/libdssp.pc.in
${
CMAKE_CURRENT_BINARY_DIR
}
/libdssp.pc.in @ONLY
)
file
(
GENERATE OUTPUT
${
CMAKE_CURRENT_BINARY_DIR
}
/libdssp.pc
INPUT
${
CMAKE_CURRENT_BINARY_DIR
}
/libdssp.pc.in
)
install
(
FILES
${
CMAKE_CURRENT_BINARY_DIR
}
/libdssp.pc DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
/pkgconfig
)
install
(
TARGETS
${
PROJECT_NAME
}
RUNTIME DESTINATION
${
BIN_INSTALL_DIR
}
)
set
(
CIFPP_DATA_DIR
"
${
CMAKE_INSTALL_FULL_DATADIR
}
/libcifpp"
)
install
(
FILES
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/mmcif_pdbx/dssp-extension.dic"
DESTINATION
${
CIFPP_DATA_DIR
}
)
if
(
GENERATE_DOCUMENTATION
)
# manual
find_program
(
PANDOC pandoc
)
...
...
@@ -268,12 +179,12 @@ if(ENABLE_TESTING)
# We still depend on boost for the testing headers-only library
find_package
(
Boost REQUIRED
)
add_executable
(
unit-test-dssp
${
PROJECT_SOURCE_DIR
}
/test/unit-test-dssp.cpp
${
PROJECT_SOURCE_DIR
}
/src/dssp-io.cpp
)
add_executable
(
unit-test-dssp
${
PROJECT_SOURCE_DIR
}
/test/unit-test-dssp.cpp
${
PROJECT_SOURCE_DIR
}
/
libdssp/
src/dssp-io.cpp
)
if
(
USE_RSRC
)
mrc_target_resources
(
unit-test-dssp
${
CIFPP_SHARE_DIR
}
/mmcif_pdbx.dic
${
CIFPP_SHARE_DIR
}
/mmcif_ddl.dic
${
CMAKE_CURRENT_SOURCE_DIR
}
/mmcif_pdbx/dssp-extension.dic
)
${
CMAKE_CURRENT_SOURCE_DIR
}
/
libdssp/
mmcif_pdbx/dssp-extension.dic
)
endif
()
target_include_directories
(
unit-test-dssp PRIVATE
...
...
cmake/GetGitRevisionDescription.cmake
deleted
100644 → 0
View file @
833a10f3
# - Returns a version string from Git
#
# These functions force a re-configure on each git commit so that you can
# trust the values of the variables in your build system.
#
# get_git_head_revision(<refspecvar> <hashvar> [ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR])
#
# Returns the refspec and sha hash of the current head revision
#
# git_describe(<var> [<additional arguments to git describe> ...])
#
# Returns the results of git describe on the source tree, and adjusting
# the output so that it tests false if an error occurs.
#
# git_describe_working_tree(<var> [<additional arguments to git describe> ...])
#
# Returns the results of git describe on the working tree (--dirty option),
# and adjusting the output so that it tests false if an error occurs.
#
# git_get_exact_tag(<var> [<additional arguments to git describe> ...])
#
# Returns the results of git describe --exact-match on the source tree,
# and adjusting the output so that it tests false if there was no exact
# matching tag.
#
# git_local_changes(<var>)
#
# Returns either "CLEAN" or "DIRTY" with respect to uncommitted changes.
# Uses the return code of "git diff-index --quiet HEAD --".
# Does not regard untracked files.
#
# Requires CMake 2.6 or newer (uses the 'function' command)
#
# Original Author:
# 2009-2020 Ryan Pavlik <ryan.pavlik@gmail.com> <abiryan@ryand.net>
# http://academic.cleardefinition.com
#
# Copyright 2009-2013, Iowa State University.
# Copyright 2013-2020, Ryan Pavlik
# Copyright 2013-2020, Contributors
# SPDX-License-Identifier: BSL-1.0
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
if
(
__get_git_revision_description
)
return
()
endif
()
set
(
__get_git_revision_description YES
)
# We must run the following at "include" time, not at function call time,
# to find the path to this module rather than the path to a calling list file
get_filename_component
(
_gitdescmoddir
${
CMAKE_CURRENT_LIST_FILE
}
PATH
)
# Function _git_find_closest_git_dir finds the next closest .git directory
# that is part of any directory in the path defined by _start_dir.
# The result is returned in the parent scope variable whose name is passed
# as variable _git_dir_var. If no .git directory can be found, the
# function returns an empty string via _git_dir_var.
#
# Example: Given a path C:/bla/foo/bar and assuming C:/bla/.git exists and
# neither foo nor bar contain a file/directory .git. This wil return
# C:/bla/.git
#
function
(
_git_find_closest_git_dir _start_dir _git_dir_var
)
set
(
cur_dir
"
${
_start_dir
}
"
)
set
(
git_dir
"
${
_start_dir
}
/.git"
)
while
(
NOT EXISTS
"
${
git_dir
}
"
)
# .git dir not found, search parent directories
set
(
git_previous_parent
"
${
cur_dir
}
"
)
get_filename_component
(
cur_dir
"
${
cur_dir
}
"
DIRECTORY
)
if
(
cur_dir STREQUAL git_previous_parent
)
# We have reached the root directory, we are not in git
set
(
${
_git_dir_var
}
""
PARENT_SCOPE
)
return
()
endif
()
set
(
git_dir
"
${
cur_dir
}
/.git"
)
endwhile
()
set
(
${
_git_dir_var
}
"
${
git_dir
}
"
PARENT_SCOPE
)
endfunction
()
function
(
get_git_head_revision _refspecvar _hashvar
)
_git_find_closest_git_dir
(
"
${
CMAKE_CURRENT_SOURCE_DIR
}
"
GIT_DIR
)
if
(
"
${
ARGN
}
"
STREQUAL
"ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR"
)
set
(
ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR TRUE
)
else
()
set
(
ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR FALSE
)
endif
()
if
(
NOT
"
${
GIT_DIR
}
"
STREQUAL
""
)
file
(
RELATIVE_PATH _relative_to_source_dir
"
${
CMAKE_SOURCE_DIR
}
"
"
${
GIT_DIR
}
"
)
if
(
"
${
_relative_to_source_dir
}
"
MATCHES
"[.][.]"
AND NOT ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR
)
# We've gone above the CMake root dir.
set
(
GIT_DIR
""
)
endif
()
endif
()
if
(
"
${
GIT_DIR
}
"
STREQUAL
""
)
set
(
${
_refspecvar
}
"GITDIR-NOTFOUND"
PARENT_SCOPE
)
set
(
${
_hashvar
}
"GITDIR-NOTFOUND"
PARENT_SCOPE
)
return
()
endif
()
# Check if the current source dir is a git submodule or a worktree.
# In both cases .git is a file instead of a directory.
#
if
(
NOT IS_DIRECTORY
${
GIT_DIR
}
)
# The following git command will return a non empty string that
# points to the super project working tree if the current
# source dir is inside a git submodule.
# Otherwise the command will return an empty string.
#
execute_process
(
COMMAND
"
${
GIT_EXECUTABLE
}
"
rev-parse
--show-superproject-working-tree
WORKING_DIRECTORY
"
${
CMAKE_CURRENT_SOURCE_DIR
}
"
OUTPUT_VARIABLE out
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
NOT
"
${
out
}
"
STREQUAL
""
)
# If out is empty, GIT_DIR/CMAKE_CURRENT_SOURCE_DIR is in a submodule
file
(
READ
${
GIT_DIR
}
submodule
)
string
(
REGEX REPLACE
"gitdir: (.*)$"
"
\\
1"
GIT_DIR_RELATIVE
${
submodule
}
)
string
(
STRIP
${
GIT_DIR_RELATIVE
}
GIT_DIR_RELATIVE
)
get_filename_component
(
SUBMODULE_DIR
${
GIT_DIR
}
PATH
)
get_filename_component
(
GIT_DIR
${
SUBMODULE_DIR
}
/
${
GIT_DIR_RELATIVE
}
ABSOLUTE
)
set
(
HEAD_SOURCE_FILE
"
${
GIT_DIR
}
/HEAD"
)
else
()
# GIT_DIR/CMAKE_CURRENT_SOURCE_DIR is in a worktree
file
(
READ
${
GIT_DIR
}
worktree_ref
)
# The .git directory contains a path to the worktree information directory
# inside the parent git repo of the worktree.
#
string
(
REGEX REPLACE
"gitdir: (.*)$"
"
\\
1"
git_worktree_dir
${
worktree_ref
}
)
string
(
STRIP
${
git_worktree_dir
}
git_worktree_dir
)
_git_find_closest_git_dir
(
"
${
git_worktree_dir
}
"
GIT_DIR
)
set
(
HEAD_SOURCE_FILE
"
${
git_worktree_dir
}
/HEAD"
)
endif
()
else
()
set
(
HEAD_SOURCE_FILE
"
${
GIT_DIR
}
/HEAD"
)
endif
()
set
(
GIT_DATA
"
${
CMAKE_CURRENT_BINARY_DIR
}
/CMakeFiles/git-data"
)
if
(
NOT EXISTS
"
${
GIT_DATA
}
"
)
file
(
MAKE_DIRECTORY
"
${
GIT_DATA
}
"
)
endif
()
if
(
NOT EXISTS
"
${
HEAD_SOURCE_FILE
}
"
)
return
()
endif
()
set
(
HEAD_FILE
"
${
GIT_DATA
}
/HEAD"
)
configure_file
(
"
${
HEAD_SOURCE_FILE
}
"
"
${
HEAD_FILE
}
"
COPYONLY
)
configure_file
(
"
${
_gitdescmoddir
}
/GetGitRevisionDescription.cmake.in"
"
${
GIT_DATA
}
/grabRef.cmake"
@ONLY
)
include
(
"
${
GIT_DATA
}
/grabRef.cmake"
)
set
(
${
_refspecvar
}
"
${
HEAD_REF
}
"
PARENT_SCOPE
)
set
(
${
_hashvar
}
"
${
HEAD_HASH
}
"
PARENT_SCOPE
)
endfunction
()
function
(
git_describe _var
)
if
(
NOT GIT_FOUND
)
find_package
(
Git QUIET
)
endif
()
get_git_head_revision
(
refspec hash
)
if
(
NOT GIT_FOUND
)
set
(
${
_var
}
"GIT-NOTFOUND"
PARENT_SCOPE
)
return
()
endif
()
if
(
NOT hash
)
set
(
${
_var
}
"HEAD-HASH-NOTFOUND"
PARENT_SCOPE
)
return
()
endif
()
# TODO sanitize
#if((${ARGN}" MATCHES "&&") OR
# (ARGN MATCHES "||") OR
# (ARGN MATCHES "\\;"))
# message("Please report the following error to the project!")
# message(FATAL_ERROR "Looks like someone's doing something nefarious with git_describe! Passed arguments ${ARGN}")
#endif()
#message(STATUS "Arguments to execute_process: ${ARGN}")
execute_process
(
COMMAND
"
${
GIT_EXECUTABLE
}
"
describe --tags --always
${
hash
}
${
ARGN
}
WORKING_DIRECTORY
"
${
CMAKE_CURRENT_SOURCE_DIR
}
"
RESULT_VARIABLE res
OUTPUT_VARIABLE out
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
NOT res EQUAL 0
)
set
(
out
"
${
out
}
-
${
res
}
-NOTFOUND"
)
endif
()
set
(
${
_var
}
"
${
out
}
"
PARENT_SCOPE
)
endfunction
()
function
(
git_describe_working_tree _var
)
if
(
NOT GIT_FOUND
)
find_package
(
Git QUIET
)
endif
()
if
(
NOT GIT_FOUND
)
set
(
${
_var
}
"GIT-NOTFOUND"
PARENT_SCOPE
)
return
()
endif
()
execute_process
(
COMMAND
"
${
GIT_EXECUTABLE
}
"
describe --dirty
${
ARGN
}
WORKING_DIRECTORY
"
${
CMAKE_CURRENT_SOURCE_DIR
}
"
RESULT_VARIABLE res
OUTPUT_VARIABLE out
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
NOT res EQUAL 0
)
set
(
out
"
${
out
}
-
${
res
}
-NOTFOUND"
)
endif
()
set
(
${
_var
}
"
${
out
}
"
PARENT_SCOPE
)
endfunction
()
function
(
git_get_exact_tag _var
)
git_describe
(
out --exact-match
${
ARGN
}
)
set
(
${
_var
}
"
${
out
}
"
PARENT_SCOPE
)
endfunction
()
function
(
git_local_changes _var
)
if
(
NOT GIT_FOUND
)
find_package
(
Git QUIET
)
endif
()
get_git_head_revision
(
refspec hash
)
if
(
NOT GIT_FOUND
)
set
(
${
_var
}
"GIT-NOTFOUND"
PARENT_SCOPE
)
return
()
endif
()
if
(
NOT hash
)
set
(
${
_var
}
"HEAD-HASH-NOTFOUND"
PARENT_SCOPE
)
return
()
endif
()
execute_process
(
COMMAND
"
${
GIT_EXECUTABLE
}
"
diff-index --quiet HEAD --
WORKING_DIRECTORY
"
${
CMAKE_CURRENT_SOURCE_DIR
}
"
RESULT_VARIABLE res
OUTPUT_VARIABLE out
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
res EQUAL 0
)
set
(
${
_var
}
"CLEAN"
PARENT_SCOPE
)
else
()
set
(
${
_var
}
"DIRTY"
PARENT_SCOPE
)
endif
()
endfunction
()
cmake/GetGitRevisionDescription.cmake.in
deleted
100644 → 0
View file @
833a10f3
#
# Internal file for GetGitRevisionDescription.cmake
#
# Requires CMake 2.6 or newer (uses the 'function' command)
#
# Original Author:
# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
# http://academic.cleardefinition.com
# Iowa State University HCI Graduate Program/VRAC
#
# Copyright 2009-2012, Iowa State University
# Copyright 2011-2015, Contributors
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
# SPDX-License-Identifier: BSL-1.0
set(HEAD_HASH)
file(READ "@HEAD_FILE@" HEAD_CONTENTS LIMIT 1024)
string(STRIP "${HEAD_CONTENTS}" HEAD_CONTENTS)
if(HEAD_CONTENTS MATCHES "ref")
# named branch
string(REPLACE "ref: " "" HEAD_REF "${HEAD_CONTENTS}")
if(EXISTS "@GIT_DIR@/${HEAD_REF}")
configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY)
else()
configure_file("@GIT_DIR@/packed-refs" "@GIT_DATA@/packed-refs" COPYONLY)
file(READ "@GIT_DATA@/packed-refs" PACKED_REFS)
if(${PACKED_REFS} MATCHES "([0-9a-z]*) ${HEAD_REF}")
set(HEAD_HASH "${CMAKE_MATCH_1}")
endif()
endif()
else()
# detached HEAD
configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY)
endif()
if(NOT HEAD_HASH)
file(READ "@GIT_DATA@/head-ref" HEAD_HASH LIMIT 1024)
string(STRIP "${HEAD_HASH}" HEAD_HASH)
endif()
cmake/VersionString.cmake
View file @
dd8a9c3c
This diff is collapsed.
Click to expand it.
libdssp/CMakeLists.txt
0 → 100644
View file @
dd8a9c3c
# SPDX-License-Identifier: BSD-2-Clause
# Copyright (c) 2021 NKI/AVL, Netherlands Cancer Institute
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cmake_minimum_required
(
VERSION 3.15
)
# set the project name
project
(
libdssp VERSION 4.4.2 LANGUAGES CXX
)
list
(
APPEND CMAKE_MODULE_PATH
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake"
)
include
(
GNUInstallDirs
)
include
(
CheckFunctionExists
)
include
(
CheckIncludeFiles
)
include
(
CheckLibraryExists
)
include
(
CMakePackageConfigHelpers
)
include
(
Dart
)
include
(
FindFilesystem
)
include
(
GenerateExportHeader
)
set
(
CXX_EXTENSIONS OFF
)
set
(
CMAKE_CXX_STANDARD 17
)
set
(
CMAKE_CXX_STANDARD_REQUIRED ON
)
find_package
(
Filesystem REQUIRED
)
if
(
"
${
CMAKE_CXX_COMPILER_ID
}
"
STREQUAL
"GNU"
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers"
)
elseif
(
MSVC
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
/W4"
)
endif
()
# Optionally build a version to be installed inside CCP4
option
(
BUILD_FOR_CCP4
"Build a version to be installed in CCP4"
OFF
)
option
(
GENERATE_DOCUMENTATION
"Generate the documentation files using pandoc"
OFF
)
if
(
BUILD_FOR_CCP4
)
if
(
"$ENV{CCP4}"
STREQUAL
""
OR NOT EXISTS $ENV{CCP4}
)
message
(
FATAL_ERROR
"A CCP4 built was requested but CCP4 was not sourced"
)
else
()
list
(
APPEND CMAKE_MODULE_PATH
"$ENV{CCP4}"
)
list
(
APPEND CMAKE_PREFIX_PATH
"$ENV{CCP4}"
)
set
(
CMAKE_INSTALL_PREFIX
"$ENV{CCP4}"
)
if
(
WIN32
)
set
(
BUILD_SHARED_LIBS ON
)
endif
()
endif
()
endif
()
if
(
MSVC
)
# make msvc standards compliant...
add_compile_options
(
/permissive-
)
macro
(
get_WIN32_WINNT version
)
if
(
WIN32 AND CMAKE_SYSTEM_VERSION
)
set
(
ver
${
CMAKE_SYSTEM_VERSION
}
)
string
(
REPLACE
"."
""
ver
${
ver
}
)
string
(
REGEX REPLACE
"([0-9])"
"0
\\
1"
ver
${
ver
}
)
set
(
${
version
}
"0x
${
ver
}
"
)
endif
()
endmacro
()
get_WIN32_WINNT
(
ver
)
add_definitions
(
-D_WIN32_WINNT=
${
ver
}
)
endif
()
# Create a revision file, containing the current git version info
include
(
VersionString
)
write_version_header
(
"
${
PROJECT_SOURCE_DIR
}
/src"
LIB_NAME
"libdssp"
)
# Optionally use mrc to create resources
find_package
(
Mrc QUIET
)
set
(
CMAKE_THREAD_PREFER_PTHREAD
)
set
(
THREADS_PREFER_PTHREAD_FLAG
)
find_package
(
Threads
)
if
(
NOT PDB_REDO_META
)
find_package
(
cifpp 5.1.0 REQUIRED
)
endif
()
# The DSSP code is in a separate library, optionally to be used by others
add_library
(
dssp
${
PROJECT_SOURCE_DIR
}
/src/dssp.cpp
${
PROJECT_SOURCE_DIR
}
/include/dssp.hpp
${
PROJECT_SOURCE_DIR
}
/src/dssp-io.cpp
${
PROJECT_SOURCE_DIR
}
/src/dssp-io.hpp
)
add_library
(
dssp::dssp ALIAS dssp
)
target_link_libraries
(
dssp PUBLIC cifpp::cifpp
)
target_include_directories
(
dssp
PUBLIC
"$<BUILD_INTERFACE:
${
PROJECT_SOURCE_DIR
}
/include>"
"$<INSTALL_INTERFACE:
${
CMAKE_INSTALL_INCLUDEDIR
}
>"
)
# Install rules
install
(
TARGETS dssp
EXPORT dsspTargets
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
INCLUDES DESTINATION
${
CMAKE_INSTALL_INCLUDEDIR
}
)
if
(
MSVC AND BUILD_SHARED_LIBS
)
install
(
FILES $<TARGET_PDB_FILE:
${
PROJECT_NAME
}
>
DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
OPTIONAL
)
endif
()
install
(
EXPORT dsspTargets
FILE
"dsspTargets.cmake"
NAMESPACE dssp::
DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
/cmake/dssp
)
install
(
FILES include/dssp.hpp
DESTINATION
${
CMAKE_INSTALL_INCLUDEDIR
}
COMPONENT Devel
)
set
(
CONFIG_TEMPLATE_FILE
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake/dsspConfig.cmake.in
)
configure_package_config_file
(
${
CONFIG_TEMPLATE_FILE
}
${
CMAKE_CURRENT_BINARY_DIR
}
/dssp/dsspConfig.cmake
INSTALL_DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
/cmake/dssp
)
install
(
FILES
"
${
CMAKE_CURRENT_BINARY_DIR
}
/dssp/dsspConfig.cmake"
"
${
CMAKE_CURRENT_BINARY_DIR
}
/dssp/dsspConfigVersion.cmake"
DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
/cmake/dssp
COMPONENT Devel
)
set
(
dssp_MAJOR_VERSION
${
CMAKE_PROJECT_VERSION_MAJOR
}
)
set_target_properties
(
dssp PROPERTIES
VERSION
${
PROJECT_VERSION
}
SOVERSION
${
dssp_MAJOR_VERSION
}
INTERFACE_dssp_MAJOR_VERSION
${
dssp_MAJOR_VERSION
}
)
set_property
(
TARGET dssp APPEND PROPERTY
COMPATIBLE_INTERFACE_STRING dssp_MAJOR_VERSION
)
write_basic_package_version_file
(
"
${
CMAKE_CURRENT_BINARY_DIR
}
/dssp/dsspConfigVersion.cmake"
VERSION
${
PROJECT_VERSION
}
COMPATIBILITY AnyNewerVersion
)
# pkgconfig support
set
(
prefix
${
CMAKE_INSTALL_PREFIX
}
)
set
(
exec_prefix
${
CMAKE_INSTALL_PREFIX
}
)
set
(
libdir
${
CMAKE_INSTALL_PREFIX
}
/
${
CMAKE_INSTALL_LIBDIR
}
)
set
(
includedir
${
CMAKE_INSTALL_PREFIX
}
/
${
CMAKE_INSTALL_INCLUDEDIR
}
)
configure_file
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake/libdssp.pc.in
${
CMAKE_CURRENT_BINARY_DIR
}
/libdssp.pc.in @ONLY
)
file
(
GENERATE OUTPUT
${
CMAKE_CURRENT_BINARY_DIR
}
/libdssp.pc
INPUT
${
CMAKE_CURRENT_BINARY_DIR
}
/libdssp.pc.in
)
install
(
FILES
${
CMAKE_CURRENT_BINARY_DIR
}
/libdssp.pc DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
/pkgconfig
)
set
(
CIFPP_DATA_DIR
"
${
CMAKE_INSTALL_FULL_DATADIR
}
/libcifpp"
)
install
(
FILES
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/mmcif_pdbx/dssp-extension.dic"
DESTINATION
${
CIFPP_DATA_DIR
}
)
cmake/dsspConfig.cmake.in
→
libdssp/
cmake/dsspConfig.cmake.in
View file @
dd8a9c3c
File moved
cmake/libdssp.pc.in
→
libdssp/
cmake/libdssp.pc.in
View file @
dd8a9c3c
File moved
include/dssp.hpp
→
libdssp/
include/dssp.hpp
View file @
dd8a9c3c
File moved
mmcif_pdbx/dssp-extension.dic
→
libdssp/
mmcif_pdbx/dssp-extension.dic
View file @
dd8a9c3c
File moved
src/dssp-io.cpp
→
libdssp/
src/dssp-io.cpp
View file @
dd8a9c3c
...
...
@@ -35,7 +35,6 @@
#include <fstream>
#include <iostream>
// --------------------------------------------------------------------
std
::
string
ResidueToDSSPLine
(
const
dssp
::
residue_info
&
info
)
...
...
@@ -158,7 +157,7 @@ void writeDSSP(const dssp &dssp, std::ostream &os)
std
::
time_t
today
=
system_clock
::
to_time_t
(
system_clock
::
now
());
std
::
tm
*
tm
=
std
::
gmtime
(
&
today
);
std
::
string
version
=
kVersionNumber
;
std
::
string
version
=
k
libdssp
VersionNumber
;
if
(
version
.
length
()
<
10
)
version
.
insert
(
version
.
end
(),
10
-
version
.
length
(),
' '
);
...
...
@@ -875,9 +874,11 @@ void annotateDSSP(cif::datablock &db, const dssp &dssp, bool writeOther, bool wr
}
auto
&
software
=
db
[
"software"
];
software
.
emplace
({
{
"pdbx_ordinal"
,
software
.
get_unique_id
(
""
)
},
software
.
emplace
({
{
"pdbx_ordinal"
,
software
.
get_unique_id
(
""
)
},
{
"name"
,
"dssp"
},
{
"version"
,
kVersionNumber
},
{
"date"
,
kBuildDate
},
{
"classification"
,
"model annotation"
}
});
{
"version"
,
klibdsspVersionNumber
},
{
"date"
,
klibdsspRevisionDate
},
{
"classification"
,
"model annotation"
}
});
}
src/dssp-io.hpp
→
libdssp/
src/dssp-io.hpp
View file @
dd8a9c3c
File moved
src/dssp.cpp
→
libdssp/
src/dssp.cpp
View file @
dd8a9c3c
File moved
test/unit-test-dssp.cpp
View file @
dd8a9c3c
...
...
@@ -30,7 +30,7 @@
#include <boost/test/included/unit_test.hpp>
#include "dssp.hpp"
#include "dssp-io.hpp"
#include "
../libdssp/src/
dssp-io.hpp"
#include "revision.hpp"
#include <cif++/dictionary_parser.hpp>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment