Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tsoc
openmm
Commits
19266648
Commit
19266648
authored
Nov 22, 2013
by
peastman
Browse files
Finished wrappers for main library
parent
a27fd3dc
Changes
2
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
619 additions
and
42 deletions
+619
-42
wrappers/CMakeLists.txt
wrappers/CMakeLists.txt
+24
-28
wrappers/generateWrappers.py
wrappers/generateWrappers.py
+595
-14
No files found.
wrappers/CMakeLists.txt
View file @
19266648
# INCLUDE(FindJava)
find_package
(
Doxygen REQUIRED
)
mark_as_advanced
(
CLEAR DOXYGEN_EXECUTABLE
)
set
(
GCCXML_EXTRA_ARGS
""
CACHE STRING
"Additional arguments to gccxml, such as '--gccxml-compiler;msvc8'"
)
SET
(
GCCXML_ARGS
)
# start empty
FOREACH
(
subdir
${
API_INCLUDE_DIRS
}
)
SET
(
GCCXML_ARGS
${
GCCXML_ARGS
}
-I
${
subdir
}
)
ENDFOREACH
(
subdir
)
SET
(
GCCXML_ARGS
${
GCCXML_ARGS
}
${
GCCXML_EXTRA_ARGS
}
)
SET
(
SAXON_CMD
${
JAVA_RUNTIME
}
-jar
${
CMAKE_SOURCE_DIR
}
/wrappers/saxonb9-1-0-7j/saxon9.jar
)
# WRAPPER_DOXYGEN_DIR is a workspace directory where wrapper files will be created
set
(
WRAPPER_DOXYGEN_DIR
"
${
CMAKE_CURRENT_BINARY_DIR
}
/doxygen"
)
file
(
MAKE_DIRECTORY
"
${
WRAPPER_DOXYGEN_DIR
}
"
)
# find_program(GCCXML_PATH gccxml PATH
# /usr/local/bin
# "C:/Program Files/gccxml 0.9/bin"
# )
# Step 1 - Create Doxyfile to point to OpenMM headers
configure_file
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/Doxyfile.in
${
WRAPPER_DOXYGEN_DIR
}
/Doxyfile
@ONLY
)
ADD_CUSTOM_COMMAND
(
OUTPUT OpenMMApi.xml
COMMAND
${
GCCXML_PATH
}
${
GCCXML_ARGS
}
${
CMAKE_SOURCE_DIR
}
/openmmapi/include/OpenMM.h -fxml=OpenMMApi.xml
DEPENDS
${
CMAKE_SOURCE_DIR
}
/openmmapi/include/OpenMM.h
)
ADD_CUSTOM_COMMAND
(
OUTPUT OpenMMCWrapper.h
COMMAND
${
SAXON_CMD
}
-t -s:OpenMMApi.xml -xsl:
${
CMAKE_CURRENT_SOURCE_DIR
}
/CWrapper_Header.xslt -o:OpenMMCWrapper.h
DEPENDS OpenMMApi.xml
${
CMAKE_CURRENT_SOURCE_DIR
}
/CWrapper_Header.xslt
)
ADD_CUSTOM_COMMAND
(
OUTPUT OpenMMCWrapper.cpp
COMMAND
${
SAXON_CMD
}
-t -s:OpenMMApi.xml -xsl:
${
CMAKE_CURRENT_SOURCE_DIR
}
/CWrapper_Source.xslt -o:OpenMMCWrapper.cpp
DEPENDS OpenMMApi.xml
${
CMAKE_CURRENT_SOURCE_DIR
}
/CWrapper_Source.xslt
)
ADD_CUSTOM_COMMAND
(
OUTPUT OpenMMFortranModule.f90
COMMAND
${
SAXON_CMD
}
-t -s:OpenMMApi.xml -xsl:
${
CMAKE_CURRENT_SOURCE_DIR
}
/FortranWrapper_Header.xslt -o:OpenMMFortranModule.f90
DEPENDS OpenMMApi.xml
${
CMAKE_CURRENT_SOURCE_DIR
}
/FortranWrapper_Header.xslt
)
ADD_CUSTOM_COMMAND
(
OUTPUT OpenMMFortranWrapper.cpp
COMMAND
${
SAXON_CMD
}
-t -s:OpenMMApi.xml -xsl:
${
CMAKE_CURRENT_SOURCE_DIR
}
/FortranWrapper_Source.xslt -o:OpenMMFortranWrapper.cpp
DEPENDS OpenMMApi.xml
${
CMAKE_CURRENT_SOURCE_DIR
}
/FortranWrapper_Source.xslt
)
# Step 2 - Run doxygen to analyze the headers
add_custom_command
(
OUTPUT
"
${
WRAPPER_DOXYGEN_DIR
}
/xml/index.xml"
COMMAND
"
${
DOXYGEN_EXECUTABLE
}
"
DEPENDS
"
${
WRAPPER_DOXYGEN_DIR
}
/Doxyfile"
WORKING_DIRECTORY
"
${
WRAPPER_DOXYGEN_DIR
}
"
COMMENT
"Parsing OpenMM header files with Doxygen..."
)
ADD_CUSTOM_TARGET
(
ApiWrappers DEPENDS OpenMMCWrapper.h OpenMMCWrapper.cpp OpenMMFortranModule.f90 OpenMMFortranWrapper.cpp
)
# Step 3 - Generate the wrappers
ADD_CUSTOM_COMMAND
(
OUTPUT OpenMMCWrapper.h OpenMMCWrapper.cpp OpenMMFortranModule.f90 OpenMMFortranWrapper.cpp
COMMAND
${
PYTHON_EXECUTABLE
}
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/generateWrappers.py"
"
${
WRAPPER_DOXYGEN_DIR
}
/xml"
"
${
CMAKE_CURRENT_BINARY_DIR
}
"
DEPENDS
"
${
WRAPPER_DOXYGEN_DIR
}
/xml/index.xml"
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/generateWrappers.py"
)
ADD_CUSTOM_TARGET
(
ApiWrappers DEPENDS OpenMMCWrapper.h OpenMMCWrapper.cpp OpenMMFortranModule.f90 OpenMMFortranWrapper.cpp
)
INSTALL_FILES
(
/include FILES OpenMMCWrapper.h OpenMMFortranModule.f90
)
wrappers/generateWrappers.py
View file @
19266648
This diff is collapsed.
Click to expand it.
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