Commit e41c1b3d authored by Mark Friedrichs's avatar Mark Friedrichs
Browse files

Added createStreamImpl() to BrookStreamFactory w/o context argument

Added  'OPENMM_EXPORT'  to class declaration to deal w/ linking issue associated w/ virtual methods in class
Modified brook/brook-cmake/FindBrook.cmake to only look in $BROOKROOT directory for Brook files
parent 5824286d
......@@ -132,15 +132,15 @@ LINK_DIRECTORIES(${${BROOK_brook_LIBRARY}})
# get *br files
FILE(GLOB BROOK_SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/gpu/*.br)
FILE(GLOB BROOK_INCLUDE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/gpu/*.h)
FILE(GLOB BROOK_SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/kernels/*.br)
FILE(GLOB BROOK_INCLUDE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/kernels/*.h)
FILE( APPEND ${LOG_FILE} "BROOK_SRC_FILES=${BROOK_SRC_FILES}\n" )
# ----------------------------------------------------------------------------
IF(LOG)
LOG_DIR( ${LOG_FILE} "Brook src" ${BROOK_SRC_FILES} )
LOG_DIR( ${LOG_FILE} "Brook include" ${BROOK_INCLUDE_FILES} )
# LOG_DIR( ${LOG_FILE} "Brook src" ${BROOK_SRC_FILES} )
# LOG_DIR( ${LOG_FILE} "Brook include" ${BROOK_INCLUDE_FILES} )
ENDIF(LOG)
# ----------------------------------------------------------------------------
......@@ -153,7 +153,7 @@ ENDFOREACH(brookFile)
# ----------------------------------------------------------------------------
IF(LOG)
LOG_DIR( ${LOG_FILE} "Brook cpp" ${BROOK_CPP_FILES} )
# LOG_DIR( ${LOG_FILE} "Brook cpp" ${BROOK_CPP_FILES} )
ENDIF(LOG)
# ----------------------------------------------------------------------------
......@@ -170,16 +170,28 @@ IF(LOG)
ENDIF(LOG)
# ----------------------------------------------------------------------------
# shared
TARGET_LINK_LIBRARIES(${SHARED_BROOK_TARGET} debug ${OPENMM_LIBRARY_NAME}_d optimized ${OPENMM_LIBRARY_NAME})
TARGET_LINK_LIBRARIES(${SHARED_BROOK_TARGET} debug brook_d optimized brook )
TARGET_LINK_LIBRARIES(${SHARED_BROOK_TARGET} ${SHARED_TARGET} )
# the line below does not work for some reason
# using the following 3 lines in its place until understand more fully source of problem
# TARGET_LINK_LIBRARIES(${SHARED_BROOK_TARGET} debug brook_d optimized brook)
SET(BrookLib ${BROOK_LIB_PATH}/brook.lib)
SET(BrookDebugLib ${BROOK_LIB_PATH}/brook_d.lib)
TARGET_LINK_LIBRARIES(${SHARED_BROOK_TARGET} debug ${BrookDebugLib} optimized ${BrookLib})
LINK_DIRECTORIES(${SHARED_BROOK_TARGET} ${BROOK_LIB_PATH})
LINK_DIRECTORIES(${SHARED_BROOK_TARGET} ${PROJECT_BINARY_DIR})
# ----------------------------------------------------------------------------
#static
TARGET_LINK_LIBRARIES(${STATIC_BROOK_TARGET} debug ${OPENMM_LIBRARY_NAME}_static_d optimized ${OPENMM_LIBRARY_NAME}_static)
TARGET_LINK_LIBRARIES(${STATIC_BROOK_TARGET} debug brook_d optimized brook)
TARGET_LINK_LIBRARIES(${STATIC_BROOK_TARGET} ${STATIC_TARGET})
LINK_DIRECTORIES(${STATIC_BROOK_TARGET} ${BROOK_LIB_PATH})
#---------------------------------------------------
# ----------------------------------------------------------------------------
......@@ -12,26 +12,12 @@
# ----------------------------------------------------------------------------
FIND_PATH(BROOK_INCLUDE_DIR brook
$ENV{BROOKDIR}/include
$ENV{BROOKROOT}/sdk/include
/usr/include/
/usr/local/include/
~/src/cvs/brook/include
~/src/brook/include
~/brook/include)
FIND_PATH(BROOK_INCLUDE_DIR brook $ENV{BROOKROOT}/sdk/include)
SET(BROOK_CXXFLAGS "-I${BROOK_INCLUDE_DIR}")
SET(BROOK_CFLAGS "${BROOK_CXXFLAGS}")
FIND_PROGRAM(BROOK_CC brcc
$ENV{BROOKDIR}/bin
$ENV{BROOKROOT}/sdk/bin
/usr/bin/
/usr/local/bin/
~/src/cvs/brook/bin
~/src/brook/bin
~/brook/bin)
FIND_PROGRAM(BROOK_CC brcc $ENV{BROOKROOT}/sdk/bin)
# Search for all libraries
# - both BASE and RUNTIME TARGETS
......@@ -43,13 +29,7 @@ FIND_LIBRARY(BROOK_brook_LIBRARY
brook
brook_d
PATHS
$ENV{BROOKDIR}/lib
$ENV{BROOKDIR}/bin
$ENV{BROOKROOT}/sdk/lib
/usr/lib
/usr/local/lib
~/src/brook/bin
~/brook/bin)
$ENV{BROOKROOT}/sdk/lib)
# if found, add to list
......@@ -76,7 +56,7 @@ ENDIF(LOG)
# check if includes and main lib are here
IF (BROOK_INCLUDE_DIR AND BROOK_brook_LIBRARY AND BROOK_CC)
# IF (BROOK_INCLUDE_DIR AND BROOK_brook_LIBRARY AND BROOK_CC)
SET(BROOK_FOUND TRUE)
......@@ -102,7 +82,7 @@ IF (BROOK_INCLUDE_DIR AND BROOK_brook_LIBRARY AND BROOK_CC)
# File names
SET(OUTPATH "${CMAKE_CURRENT_BINARY_DIR}/src/gpu")
SET(OUTPATH "${CMAKE_CURRENT_BINARY_DIR}/src/kernels")
SET(BROOK_PREFIX "${OUTPATH}/${HEAD}")
SET(OUTFILE "${BROOK_PREFIX}.cpp") # file produced by Brook
# SET(INFILE "${CMAKE_CURRENT_SOURCE_DIR}/${FILENAME}") # canonical input name
......@@ -141,9 +121,9 @@ IF (BROOK_INCLUDE_DIR AND BROOK_brook_LIBRARY AND BROOK_CC)
SET(BROOK_CPP_FILES ${BROOK_CPP_FILES} ${OUTFILE})
ENDMACRO(BROOK_FILE)
ELSE (BROOK_INCLUDE_DIR AND BROOK_brook_LIBRARY AND BROOK_CC)
SET(BROOK_FOUND FALSE)
ENDIF (BROOK_INCLUDE_DIR AND BROOK_brook_LIBRARY AND BROOK_CC)
# ELSE (BROOK_INCLUDE_DIR AND BROOK_brook_LIBRARY AND BROOK_CC)
# SET(BROOK_FOUND FALSE)
#ENDIF (BROOK_INCLUDE_DIR AND BROOK_brook_LIBRARY AND BROOK_CC)
# Some verbosity
......
......@@ -41,8 +41,10 @@ namespace OpenMM {
*/
class BrookKernelFactory : public KernelFactory {
public:
KernelImpl* createKernelImpl( std::string name, const Platform& platform, OpenMMContextImpl& context ) const;
public:
KernelImpl* createKernelImpl( std::string name, const Platform& platform, OpenMMContextImpl& context ) const;
};
} // namespace OpenMM
......
......@@ -294,6 +294,8 @@ class OPENMM_EXPORT BrookPlatform : public Platform {
FILE* _log;
// default stream factory
BrookStreamFactory _defaultStreamFactory;
// default stream width
......
......@@ -41,11 +41,22 @@ namespace OpenMM {
* This StreamFactory creates all streams for BrookPlatform.
*/
class BrookStreamFactory : public StreamFactory {
class OPENMM_EXPORT BrookStreamFactory : public StreamFactory {
public:
/**
* BrookStreamFactory constructor
*
*/
BrookStreamFactory( );
/**
* BrookStreamFactory destructor
*
*/
~BrookStreamFactory( );
// 'external' streams
......@@ -68,6 +79,19 @@ class BrookStreamFactory : public StreamFactory {
StreamImpl* createStreamImpl( std::string name, int size, Stream::DataType type, const Platform& platform, OpenMMContextImpl& context ) const;
/**
* Create StreamImpl
*
* @param name stream name
* @param size stream size
* @param type data type (float, float2, ...)
* @param platform platform reference
*
* @return StreamImpl
*/
StreamImpl* createStreamImpl( std::string name, int size, Stream::DataType type, const Platform& platform ) const;
/**
* Get particle stream width
*
......
......@@ -310,3 +310,33 @@ StreamImpl* BrookStreamFactory::createStreamImpl( std::string name, int size, St
return brookStreamImpl;
}
/**
* Create StreamInternal
*
* @param name stream name
* @param size stream size
* @param type data type (float, float2, ...)
* @param platform platform reference
*
* @return StreamInternal
*/
StreamImpl* BrookStreamFactory::createStreamImpl( std::string name, int size, Stream::DataType type,
const Platform& platform ) const {
// ---------------------------------------------------------------------------------------
//static const std::string methodName = "BrookStreamFactory::createStreamImpl";
// ---------------------------------------------------------------------------------------
// stream width hould be based on name & value set in platform; for now only particle stream types
int streamWidth = getDefaultParticleStreamWidth();
BrookStreamImpl* brookStreamImpl = new BrookStreamImpl( name, size, streamWidth, type, platform );
return brookStreamImpl;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment