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
2b5402dc
"ssh:/git@developer.sourcefind.cn:2222/OpenDAS/flashmla.git" did not exist on "2ff340aae898b9f149b330b8b39ba554a4d91339"
Commit
2b5402dc
authored
Feb 19, 2009
by
Mark Friedrichs
Browse files
Mods for preprocessor flags for shared/static libs
parent
d9de3c8a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
71 additions
and
3 deletions
+71
-3
CMakeLists.txt
CMakeLists.txt
+71
-3
No files found.
CMakeLists.txt
View file @
2b5402dc
...
@@ -45,13 +45,10 @@ IF(${CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT})
...
@@ -45,13 +45,10 @@ IF(${CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT})
SET
(
CMAKE_INSTALL_PREFIX
${
OPENMM_INSTALL_PREFIX
}
CACHE PATH
"Where to install OpenMM"
FORCE
)
SET
(
CMAKE_INSTALL_PREFIX
${
OPENMM_INSTALL_PREFIX
}
CACHE PATH
"Where to install OpenMM"
FORCE
)
ENDIF
(
${
CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT
}
)
ENDIF
(
${
CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT
}
)
INCLUDE
(
Dart
)
INCLUDE
(
Dart
)
# SUBDIRS (platforms/reference/tests platforms/cuda)
# SUBDIRS (platforms/reference/tests platforms/cuda)
ADD_DEFINITIONS
(
-DOPENMM_BUILDING_SHARED_LIBRARY
)
# The source is organized into subdirectories, but we handle them all from
# The source is organized into subdirectories, but we handle them all from
# this CMakeLists file rather than letting CMake visit them as SUBDIRS.
# this CMakeLists file rather than letting CMake visit them as SUBDIRS.
SET
(
OPENMM_SOURCE_SUBDIRS . openmmapi olla platforms/reference
)
SET
(
OPENMM_SOURCE_SUBDIRS . openmmapi olla platforms/reference
)
...
@@ -239,7 +236,10 @@ ENDFOREACH(subdir)
...
@@ -239,7 +236,10 @@ ENDFOREACH(subdir)
INCLUDE_DIRECTORIES
(
BEFORE
${
CMAKE_CURRENT_SOURCE_DIR
}
/src
)
INCLUDE_DIRECTORIES
(
BEFORE
${
CMAKE_CURRENT_SOURCE_DIR
}
/src
)
ADD_LIBRARY
(
${
SHARED_TARGET
}
SHARED
${
SOURCE_FILES
}
${
SOURCE_INCLUDE_FILES
}
${
API_ABS_INCLUDE_FILES
}
)
ADD_LIBRARY
(
${
SHARED_TARGET
}
SHARED
${
SOURCE_FILES
}
${
SOURCE_INCLUDE_FILES
}
${
API_ABS_INCLUDE_FILES
}
)
SET_TARGET_PROPERTIES
(
${
SHARED_TARGET
}
PROPERTIES COMPILE_FLAGS
"-DOPENMM_BUILDING_SHARED_LIBRARY"
)
ADD_LIBRARY
(
${
STATIC_TARGET
}
STATIC
${
SOURCE_FILES
}
${
SOURCE_INCLUDE_FILES
}
${
API_ABS_INCLUDE_FILES
}
)
ADD_LIBRARY
(
${
STATIC_TARGET
}
STATIC
${
SOURCE_FILES
}
${
SOURCE_INCLUDE_FILES
}
${
API_ABS_INCLUDE_FILES
}
)
SET_TARGET_PROPERTIES
(
${
STATIC_TARGET
}
PROPERTIES COMPILE_FLAGS
"-DOPENMM_USE_STATIC_LIBRARIES -DOPENMM_BUILDING_STATIC_LIBRARY"
)
# On Linux need to link to libdl
# On Linux need to link to libdl
FIND_LIBRARY
(
DL_LIBRARY dl
)
FIND_LIBRARY
(
DL_LIBRARY dl
)
...
@@ -270,6 +270,74 @@ FILE(GLOB INTERNAL_HEADERS include/internal/*.h */include/internal/*.h)
...
@@ -270,6 +270,74 @@ FILE(GLOB INTERNAL_HEADERS include/internal/*.h */include/internal/*.h)
INSTALL_FILES
(
/include/ FILES
${
CORE_HEADERS
}
)
INSTALL_FILES
(
/include/ FILES
${
CORE_HEADERS
}
)
INSTALL_FILES
(
/include/internal FILES
${
INTERNAL_HEADERS
}
)
INSTALL_FILES
(
/include/internal FILES
${
INTERNAL_HEADERS
}
)
# Set the build flags to link statically to the microsoft runtime library, unless
# the user tells us otherwise, via the variable "USE_MSVC_RUNTIME_DLL"
# It is a sore defect of cmake that makes these gymnastics necessary
IF
(
CMAKE_GENERATOR MATCHES
"Visual Studio"
)
IF
(
CMAKE_BUILD_TYPE MATCHES Debug
)
# STRING_APPEND( CMAKE_EXE_LINKER_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT.lib\"")
# STRING_APPEND( CMAKE_EXE_LINKER_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT.lib\"")
SET
(
CMAKE_EXE_LINKER_FLAGS /NODEFAULTLIB:LIBCMT
)
ENDIF
(
CMAKE_BUILD_TYPE MATCHES Debug
)
# First notice whether the user wants static or dll linkage to runtime library
SET
(
USE_MSVC_RUNTIME_DLL 0 CACHE BOOL
"Link to DLL version of microsoft runtime library"
)
IF
(
USE_MSVC_RUNTIME_DLL
)
# The same replacement strings will be used to replace "/MD" with "/MT", and "/MDd" with "/MTd"
SET
(
RT_FLAG_WE_WANT
"/MD"
)
SET
(
RT_FLAG_WE_HATE
"/MT"
)
IF
(
CMAKE_BUILD_TYPE MATCHES Debug
)
SET
(
RT_FLAG_WE_WANT
"/MDd"
)
SET
(
RT_FLAG_WE_HATE
"/MTd"
)
ENDIF
(
CMAKE_BUILD_TYPE MATCHES Debug
)
ELSE
(
USE_MSVC_RUNTIME_DLL
)
SET
(
RT_FLAG_WE_WANT
"/MT"
)
SET
(
RT_FLAG_WE_HATE
"/MD"
)
IF
(
CMAKE_BUILD_TYPE MATCHES Debug
)
SET
(
RT_FLAG_WE_WANT
"/MTd"
)
SET
(
RT_FLAG_WE_HATE
"/MDd"
)
ENDIF
(
CMAKE_BUILD_TYPE MATCHES Debug
)
ENDIF
(
USE_MSVC_RUNTIME_DLL
)
# Next, set the compiler flags using the "FORCE" option, which seems to be required for setting these
# C flags
STRING
(
REPLACE
${
RT_FLAG_WE_HATE
}
${
RT_FLAG_WE_WANT
}
CMAKE_C_FLAGS_RELEASE
${
CMAKE_C_FLAGS_RELEASE
}
)
SET
(
CMAKE_C_FLAGS_RELEASE
${
CMAKE_C_FLAGS_RELEASE
}
CACHE STRING
""
FORCE
)
STRING
(
REPLACE
${
RT_FLAG_WE_HATE
}
${
RT_FLAG_WE_WANT
}
CMAKE_C_FLAGS_DEBUG
${
CMAKE_C_FLAGS_DEBUG
}
)
SET
(
CMAKE_C_FLAGS_DEBUG
${
CMAKE_C_FLAGS_DEBUG
}
CACHE STRING
""
FORCE
)
STRING
(
REPLACE
${
RT_FLAG_WE_HATE
}
${
RT_FLAG_WE_WANT
}
CMAKE_C_FLAGS_RELWITHDEBINFO
${
CMAKE_C_FLAGS_RELWITHDEBINFO
}
)
SET
(
CMAKE_C_FLAGS_RELWITHDEBINFO
${
CMAKE_C_FLAGS_RELWITHDEBINFO
}
CACHE STRING
""
FORCE
)
STRING
(
REPLACE
${
RT_FLAG_WE_HATE
}
${
RT_FLAG_WE_WANT
}
CMAKE_C_FLAGS_MINSIZEREL
${
CMAKE_C_FLAGS_MINSIZEREL
}
)
SET
(
CMAKE_C_FLAGS_MINSIZEREL
${
CMAKE_C_FLAGS_MINSIZEREL
}
CACHE STRING
""
FORCE
)
# C++ flags
STRING
(
REPLACE
${
RT_FLAG_WE_HATE
}
${
RT_FLAG_WE_WANT
}
CMAKE_CXX_FLAGS_RELEASE
${
CMAKE_CXX_FLAGS_RELEASE
}
)
SET
(
CMAKE_CXX_FLAGS_RELEASE
${
CMAKE_CXX_FLAGS_RELEASE
}
CACHE STRING
""
FORCE
)
STRING
(
REPLACE
${
RT_FLAG_WE_HATE
}
${
RT_FLAG_WE_WANT
}
CMAKE_CXX_FLAGS_DEBUG
${
CMAKE_CXX_FLAGS_DEBUG
}
)
SET
(
CMAKE_CXX_FLAGS_DEBUG
${
CMAKE_CXX_FLAGS_DEBUG
}
CACHE STRING
""
FORCE
)
STRING
(
REPLACE
${
RT_FLAG_WE_HATE
}
${
RT_FLAG_WE_WANT
}
CMAKE_CXX_FLAGS_RELWITHDEBINFO
${
CMAKE_CXX_FLAGS_RELWITHDEBINFO
}
)
SET
(
CMAKE_CXX_FLAGS_RELWITHDEBINFO
${
CMAKE_CXX_FLAGS_RELWITHDEBINFO
}
CACHE STRING
""
FORCE
)
STRING
(
REPLACE
${
RT_FLAG_WE_HATE
}
${
RT_FLAG_WE_WANT
}
CMAKE_CXX_FLAGS_MINSIZEREL
${
CMAKE_CXX_FLAGS_MINSIZEREL
}
)
SET
(
CMAKE_CXX_FLAGS_MINSIZEREL
${
CMAKE_CXX_FLAGS_MINSIZEREL
}
CACHE STRING
""
FORCE
)
ENDIF
(
CMAKE_GENERATOR MATCHES
"Visual Studio"
)
#
#
# Allow automated build and dashboard.
# Allow automated build and dashboard.
#
#
...
...
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