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
2e6397b7
Commit
2e6397b7
authored
May 16, 2014
by
peastman
Browse files
Additional CMake changes to support Android
parent
04f2d85a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
15 deletions
+35
-15
CMakeLists.txt
CMakeLists.txt
+35
-15
No files found.
CMakeLists.txt
View file @
2e6397b7
...
@@ -61,6 +61,11 @@ ELSE(WIN32)
...
@@ -61,6 +61,11 @@ ELSE(WIN32)
ENDIF
(
NOT OPENMM_INSTALL_PREFIX
)
ENDIF
(
NOT OPENMM_INSTALL_PREFIX
)
ENDIF
(
WIN32
)
ENDIF
(
WIN32
)
# Include CPU-Features for Android
IF
(
ANDROID
)
INCLUDE_DIRECTORIES
(
${
ANDROID_NDK
}
/sources/cpufeatures
)
ENDIF
(
ANDROID
)
# It seems that on linux and mac, everything is trying to be installed in /usr/local/openmm
# It seems that on linux and mac, everything is trying to be installed in /usr/local/openmm
# But if every install target is prefixed with /openmm/, on Windows the install files
# But if every install target is prefixed with /openmm/, on Windows the install files
# end up in C:/Program Files/OpenMM/openmm/ which is ugly.
# end up in C:/Program Files/OpenMM/openmm/ which is ugly.
...
@@ -87,9 +92,11 @@ IF(WIN32)
...
@@ -87,9 +92,11 @@ IF(WIN32)
SET
(
PTHREADS_LIB pthreadVC2
)
SET
(
PTHREADS_LIB pthreadVC2
)
SET
(
PTHREADS_LIB_STATIC pthreadVC2_static_mt
)
SET
(
PTHREADS_LIB_STATIC pthreadVC2_static_mt
)
ELSE
(
WIN32
)
ELSE
(
WIN32
)
SET
(
PTHREADS_LIB pthread
)
IF
(
NOT ANDROID
)
# in linux, even in static builds we link against the dynamic object (since its tied to libc versions)
SET
(
PTHREADS_LIB pthread
)
SET
(
PTHREADS_LIB_STATIC pthread
)
# in linux, even in static builds we link against the dynamic object (since its tied to libc versions)
SET
(
PTHREADS_LIB_STATIC pthread
)
ENDIF
(
NOT ANDROID
)
ENDIF
(
WIN32
)
ENDIF
(
WIN32
)
# The build system will set ARCH64 for 64 bit builds, which require
# The build system will set ARCH64 for 64 bit builds, which require
...
@@ -121,11 +128,11 @@ IF (APPLE)
...
@@ -121,11 +128,11 @@ IF (APPLE)
SET
(
CMAKE_INSTALL_NAME_DIR
"@rpath"
)
SET
(
CMAKE_INSTALL_NAME_DIR
"@rpath"
)
SET
(
EXTRA_COMPILE_FLAGS
"-msse2 -stdlib=libc++"
)
SET
(
EXTRA_COMPILE_FLAGS
"-msse2 -stdlib=libc++"
)
ELSE
(
APPLE
)
ELSE
(
APPLE
)
IF
(
MSVC
)
IF
(
MSVC
OR ANDROID
)
SET
(
EXTRA_COMPILE_FLAGS
)
SET
(
EXTRA_COMPILE_FLAGS
)
ELSE
(
MSVC
)
ELSE
(
MSVC
OR ANDROID
)
SET
(
EXTRA_COMPILE_FLAGS
"-msse2"
)
SET
(
EXTRA_COMPILE_FLAGS
"-msse2"
)
ENDIF
(
MSVC
)
ENDIF
(
MSVC
OR ANDROID
)
ENDIF
(
APPLE
)
ENDIF
(
APPLE
)
IF
(
UNIX AND NOT CMAKE_BUILD_TYPE
)
IF
(
UNIX AND NOT CMAKE_BUILD_TYPE
)
...
@@ -137,8 +144,13 @@ IF (NOT CMAKE_CXX_FLAGS_DEBUG)
...
@@ -137,8 +144,13 @@ IF (NOT CMAKE_CXX_FLAGS_DEBUG)
ENDIF
(
NOT CMAKE_CXX_FLAGS_DEBUG
)
ENDIF
(
NOT CMAKE_CXX_FLAGS_DEBUG
)
IF
(
NOT CMAKE_CXX_FLAGS_RELEASE
)
IF
(
NOT CMAKE_CXX_FLAGS_RELEASE
)
SET
(
CMAKE_CXX_FLAGS_RELEASE
"-O3 -DNDEBUG"
CACHE STRING
IF
(
ANDROID
)
"To use when CMAKE_BUILD_TYPE=Release"
FORCE
)
SET
(
CMAKE_CXX_FLAGS_RELEASE
"-mfloat-abi=softfp -march=armv7-a -mfpu=neon -funsafe-math-optimizations -O3 -DNDEBUG"
CACHE STRING
"To use when CMAKE_BUILD_TYPE=Release"
FORCE
)
ELSE
(
ANDROID
)
SET
(
CMAKE_CXX_FLAGS_RELEASE
"-O3 -DNDEBUG"
CACHE STRING
"To use when CMAKE_BUILD_TYPE=Release"
FORCE
)
ENDIF
(
ANDROID
)
ENDIF
(
NOT CMAKE_CXX_FLAGS_RELEASE
)
ENDIF
(
NOT CMAKE_CXX_FLAGS_RELEASE
)
...
@@ -252,7 +264,11 @@ FOREACH(subdir ${OPENMM_SOURCE_SUBDIRS})
...
@@ -252,7 +264,11 @@ FOREACH(subdir ${OPENMM_SOURCE_SUBDIRS})
## OpenMM was previously installed there.
## OpenMM was previously installed there.
INCLUDE_DIRECTORIES
(
BEFORE
${
CMAKE_CURRENT_SOURCE_DIR
}
/
${
subdir
}
/include
)
INCLUDE_DIRECTORIES
(
BEFORE
${
CMAKE_CURRENT_SOURCE_DIR
}
/
${
subdir
}
/include
)
ENDFOREACH
(
subdir
)
ENDFOREACH
(
subdir
)
SET_SOURCE_FILES_PROPERTIES
(
${
CMAKE_SOURCE_DIR
}
/libraries/sfmt/src/SFMT.cpp PROPERTIES COMPILE_FLAGS
"-DHAVE_SSE2=1"
)
IF
(
ANDROID
)
SET_SOURCE_FILES_PROPERTIES
(
${
CMAKE_SOURCE_DIR
}
/libraries/sfmt/src/SFMT.cpp PROPERTIES COMPILE_FLAGS
"-UHAVE_SSE2"
)
ELSE
(
ANDROID
)
SET_SOURCE_FILES_PROPERTIES
(
${
CMAKE_SOURCE_DIR
}
/libraries/sfmt/src/SFMT.cpp PROPERTIES COMPILE_FLAGS
"-DHAVE_SSE2=1"
)
ENDIF
(
ANDROID
)
# If API wrappers are being generated, and add them to the build.
# If API wrappers are being generated, and add them to the build.
SET
(
OPENMM_BUILD_C_AND_FORTRAN_WRAPPERS ON CACHE BOOL
"Build wrappers for C and Fortran"
)
SET
(
OPENMM_BUILD_C_AND_FORTRAN_WRAPPERS ON CACHE BOOL
"Build wrappers for C and Fortran"
)
...
@@ -286,13 +302,17 @@ ENDIF(OPENMM_BUILD_C_AND_FORTRAN_WRAPPERS)
...
@@ -286,13 +302,17 @@ ENDIF(OPENMM_BUILD_C_AND_FORTRAN_WRAPPERS)
# On Linux need to link to libdl
# On Linux need to link to libdl
FIND_LIBRARY
(
DL_LIBRARY dl
)
FIND_LIBRARY
(
DL_LIBRARY dl
)
IF
(
DL_LIBRARY
)
IF
(
DL_LIBRARY
)
TARGET_LINK_LIBRARIES
(
${
SHARED_TARGET
}
${
DL_LIBRARY
}
${
PTHREADS_LIB
}
)
TARGET_LINK_LIBRARIES
(
${
SHARED_TARGET
}
${
DL_LIBRARY
}
${
PTHREADS_LIB
}
)
IF
(
OPENMM_BUILD_STATIC_LIB
)
IF
(
OPENMM_BUILD_STATIC_LIB
)
TARGET_LINK_LIBRARIES
(
${
STATIC_TARGET
}
${
DL_LIBRARY
}
${
PTHREADS_LIB
}
)
TARGET_LINK_LIBRARIES
(
${
STATIC_TARGET
}
${
DL_LIBRARY
}
${
PTHREADS_LIB
}
)
ENDIF
(
OPENMM_BUILD_STATIC_LIB
)
ENDIF
(
OPENMM_BUILD_STATIC_LIB
)
MARK_AS_ADVANCED
(
DL_LIBRARY
)
MARK_AS_ADVANCED
(
DL_LIBRARY
)
ELSE
(
DL_LIBRARY
)
ELSE
(
DL_LIBRARY
)
TARGET_LINK_LIBRARIES
(
${
SHARED_TARGET
}
${
PTHREADS_LIB
}
)
IF
(
ANDROID
)
TARGET_LINK_LIBRARIES
(
${
SHARED_TARGET
}
${
PTHREADS_LIB
}
cpufeatures
)
ELSE
(
ANDROID
)
TARGET_LINK_LIBRARIES
(
${
SHARED_TARGET
}
${
PTHREADS_LIB
}
)
ENDIF
(
ANDROID
)
ENDIF
(
DL_LIBRARY
)
ENDIF
(
DL_LIBRARY
)
ADD_SUBDIRECTORY
(
platforms/reference/tests
)
ADD_SUBDIRECTORY
(
platforms/reference/tests
)
...
...
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