# Required for config.h, maybe should only be set in src/CMakeLists.txt
include_directories(${CMAKE_BINARY_DIR}/src)
# Required for now to make old code compile
-include_directories(${CMAKE_BINARY_DIR}/src/gromacs/legacyheaders)
include_directories(${CMAKE_SOURCE_DIR}/src/gromacs/legacyheaders)
include(gmxCheckBuildUserTime)
gmx_test_inline_asm_msvc_x86(GMX_X86_MSVC_INLINE_ASM)
include(gmxTestCXX11)
-gmx_test_cxx11(HAVE_CXX11 CXX11_FLAG)
+gmx_test_cxx11(GMX_CXX11 CXX11_FLAG)
set(GROMACS_CXX_FLAGS "${CXX11_FLAG} ${GROMACS_CXX_FLAGS}")
# turn on SSE if supported with reasonable defaults.
/* Define if we have pipes */
#cmakedefine HAVE_PIPES
-/* Define if we have sufficient C++11 support */
-#cmakedefine HAVE_CXX11
-
/* Catch stupid CMake problems on OS X */
#ifdef __APPLE__
# if ((defined(__LP64__) && __LP64__ && defined(SIZEOF_VOIDP) && SIZEOF_VOIDP<8) || ( (!defined(__LP64__) || __LP64__==0) && (defined(SIZEOF_VOIDP) && SIZEOF_VOIDP>4)))
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
-#include "gmx_header_config.h"
+#include "gromacs/utility/gmx_header_config.h"
#include <string.h>
#include <time.h>
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
-#include "gmx_header_config.h"
+#include "gromacs/utility/gmx_header_config.h"
#include <stdio.h>
#include <stdlib.h>
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
-#include "gmx_header_config.h"
+#include "gromacs/utility/gmx_header_config.h"
#include <gmx_random.h>
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
-#include "gmx_header_config.h"
+#include "gromacs/utility/gmx_header_config.h"
#include <stdio.h>
#include <stdlib.h>
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
-#include "gmx_header_config.h"
+#include "gromacs/utility/gmx_header_config.h"
#include <time.h>
#ifdef GMX_NATIVE_WINDOWS
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
-#include "gmx_header_config.h"
+#include "gromacs/utility/gmx_header_config.h"
#ifdef GMX_CRAY_XT3
#undef HAVE_PWD_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
-#include "gmx_header_config.h"
+#include "gromacs/utility/gmx_header_config.h"
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
-#include "gmx_header_config.h"
+#include "gromacs/utility/gmx_header_config.h"
#include "string2.h"
#include "smalloc.h"
-# includes: Nothing to build, just configuration and installation
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/gmx_header_config.h.cmakein ${CMAKE_CURRENT_BINARY_DIR}/gmx_header_config.h)
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gmx_header_config.h
- DESTINATION ${INCL_INSTALL_DIR}/gromacs/legacyheaders
- COMPONENT development
-)
-
+# includes: Nothing to build, just installation
install(DIRECTORY . DESTINATION ${INCL_INSTALL_DIR}/gromacs/legacyheaders
COMPONENT development
PATTERN "Makefile*" EXCLUDE
* When reading the PATH environment variable, Unix separates entries
* with colon, while windows uses semicolon.
*/
-#include "gmx_header_config.h"
+#include "../utility/gmx_header_config.h"
#ifdef GMX_NATIVE_WINDOWS
#define DIR_SEPARATOR '\\'
#define PATH_SEPARATOR ";"
#include <ctype.h>
#include <time.h>
#include <errno.h>
-#include "gmx_header_config.h"
+#include "../utility/gmx_header_config.h"
/*#include "typedefs.h"*/
#include "types/simple.h"
#define int64_t long long
#endif
-#include "gmx_header_config.h"
+#include "../utility/gmx_header_config.h"
#if (defined GMX_NATIVE_WINDOWS || defined GMX_CYGWIN || defined GMX_INTERNAL_XDR)
#include "gmx_system_xdr.h"
#else
--- /dev/null
+gmx_header_config.h
file(GLOB UTILITY_SOURCES *.cpp)
set(LIBGROMACS_SOURCES ${LIBGROMACS_SOURCES} ${UTILITY_SOURCES} PARENT_SCOPE)
+# Needs to be created in the source tree to allow relative paths in headers to
+# be resolved correctly before installation
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/gmx_header_config.h.cmakein
+ ${CMAKE_CURRENT_SOURCE_DIR}/gmx_header_config.h)
+
set(UTILITY_PUBLIC_HEADERS
arrayref.h
common.h
file.h
flags.h
format.h
+ gmx_header_config.h
gmxassert.h
uniqueptr.h)
install(FILES ${UTILITY_PUBLIC_HEADERS}
/* Detect native (i.e. non-Cygwin) Windows */
#cmakedefine GMX_NATIVE_WINDOWS
+
+/* Define if we have sufficient C++11 support */
+#cmakedefine GMX_CXX11
*/
#include "path.h"
+#include "gmx_header_config.h"
+
#include <errno.h>
#include <sys/stat.h>
-#if ((defined WIN32 || defined _WIN32 || defined WIN64 || defined _WIN64) && !defined __CYGWIN__ && !defined __CYGWIN32__)
+#ifdef GMX_NATIVE_WINDOWS
#include <direct.h>
#endif
{
return 0;
}
-#if ((defined WIN32 || defined _WIN32 || defined WIN64 || defined _WIN64) && !defined __CYGWIN__ && !defined __CYGWIN32__)
+#ifdef GMX_NATIVE_WINDOWS
if (_mkdir(path))
#else
if (mkdir(path, S_IRWXU | S_IRWXG | S_IROTH | S_IWOTH) != 0)
}
return false;
}
-#if ((defined WIN32 || defined _WIN32 || defined WIN64 || defined _WIN64) && !defined __CYGWIN__ && !defined __CYGWIN32__)
+#ifdef GMX_NATIVE_WINDOWS
return ((_S_IFDIR & info.st_mode) != 0);
#else
return S_ISDIR(info.st_mode);
#ifndef GMX_UTILITY_UNIQUEPTR_H
#define GMX_UTILITY_UNIQUEPTR_H
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "gmx_header_config.h"
-#ifdef HAVE_CXX11 // C++11 Compiler
+#ifdef GMX_CXX11 // C++11 Compiler
#include <memory>
#include <utility>
#else // C++03 Compiler
* \ingroup module_utility
* \inlibraryapi
*/
-
/*! \typedef gmx_unique_ptr::type
* \brief The smart pointer type.
* Work-around for the non-existence of template typedefs in C++03.
*/
-
-/*! \fn boost::shared_ptr<T> &move(boost::shared_ptr<T> &ptr)
- * \brief Moves gmx::gmx_unique_ptr type pointers
- * For C++11 gmx::move is the std::move, for non-C++11 compilers, the
- * move operation is a no-op.
- *
- * \inlibraryapi
- */
-#ifdef HAVE_CXX11 // C++11 Compiler
+#ifdef GMX_CXX11 // C++11 Compiler
using std::move;
template<typename T>
struct gmx_unique_ptr
typedef std::unique_ptr<T> type;
};
#else // C++03 Compiler
+/*! \fn boost::shared_ptr<T> &move(boost::shared_ptr<T> &ptr)
+ * \brief
+ * Moves gmx::gmx_unique_ptr type pointers
+ *
+ * For C++11 gmx::move is the std::move, for non-C++11 compilers, the
+ * move operation is a no-op.
+ *
+ * \inlibraryapi
+ */
template<typename T>
boost::shared_ptr<T> &move(boost::shared_ptr<T> &ptr)
{
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
-#include "gmx_header_config.h"
+#include "gromacs/utility/gmx_header_config.h"
#include <string.h>
#include <math.h>