Initial commit.
This commit is contained in:
Executable
+118
@@ -0,0 +1,118 @@
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
project(wfr-examples C CXX)
|
||||
|
||||
|
||||
# Compiler flags
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -DNDEBUG -Wall")
|
||||
set(CMAKE_C_FLAGS_DEBUG "-O0 -g3 -DNDEBUG -Wall")
|
||||
|
||||
# Find WFR-libraries
|
||||
if (NOT WFR_FOUND)
|
||||
if (NOT WFR_DIR)
|
||||
set(WFR_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../WFR-lib/dist")
|
||||
endif()
|
||||
find_package(WFR REQUIRED)
|
||||
endif()
|
||||
|
||||
# Find IWIR2WFR compiler
|
||||
if (NOT IWIR2WFR_FOUND)
|
||||
if (NOT IWIR2WFR_DIR)
|
||||
set(IWIR2WFR_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../IWIR2WFRcompiler/dist")
|
||||
endif()
|
||||
find_package(IWIR2WFR REQUIRED)
|
||||
endif()
|
||||
|
||||
# We need OpenMP
|
||||
FIND_PACKAGE(OpenMP)
|
||||
if(OPENMP_FOUND)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
||||
endif()
|
||||
|
||||
# Where to install the output
|
||||
get_directory_property(hasParent PARENT_DIRECTORY)
|
||||
if (NOT hasParent)
|
||||
if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/dist")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Setup include dir
|
||||
include_directories(${WFR_INCLUDE_DIR})
|
||||
|
||||
# Enable C++11 support
|
||||
ADD_DEFINITIONS( -std=c++11 )
|
||||
|
||||
#
|
||||
# Convenience function for setting up individual unit-tests
|
||||
#
|
||||
function(add_wfr_example name add_inc)
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${name}/wfr)
|
||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${name}/wfr/${name}.cpp ${CMAKE_CURRENT_BINARY_DIR}/${name}/wfr/${name}.h
|
||||
COMMAND ${IWIR2WFR_EXE} -i ${CMAKE_CURRENT_SOURCE_DIR}/src/${name}/wfr/${name}.iwir -o ${CMAKE_CURRENT_BINARY_DIR}/${name}/wfr/${name} -skipmain -printir -repoconfig ${CMAKE_CURRENT_SOURCE_DIR}/src/${name}/wfr/repo/${name}.properties
|
||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${name}/wfr
|
||||
)
|
||||
add_definitions("-pg -g3")
|
||||
add_executable(${name}-wfr.bin ${CMAKE_CURRENT_BINARY_DIR}/${name}/wfr/${name}.cpp ${ARGN})
|
||||
target_include_directories(${name}-wfr.bin PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/${name}/wfr ${add_inc})
|
||||
target_link_libraries(${name}-wfr.bin ${WFR_LIBRARIES})
|
||||
add_dependencies(${name}-wfr.bin wfr_lib) # Otherwise we would have race conditions when compiling the parent project with -j
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${name}/wfr/${name}.cpp ${CMAKE_CURRENT_BINARY_DIR}/${name}/wfr/${name}.h DESTINATION ${CMAKE_INSTALL_PREFIX}/examples/${name}/wfr)
|
||||
install(TARGETS ${name}-wfr.bin DESTINATION ${CMAKE_INSTALL_PREFIX}/examples/${name}/wfr)
|
||||
endfunction()
|
||||
|
||||
function(add_omp_example name add_inc)
|
||||
add_executable(${name}-omp.bin ${CMAKE_CURRENT_SOURCE_DIR}/src/${name}/openmp/${name}.cpp ${ARGN})
|
||||
target_include_directories(${name}-omp.bin PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/${name}/openmp ${add_inc})
|
||||
target_link_libraries(${name}-omp.bin ${WFR_LIBRARIES})
|
||||
add_dependencies(${name}-omp.bin wfr_lib) # Otherwise we would have race conditions when compiling the parent project with -j
|
||||
install(TARGETS ${name}-omp.bin DESTINATION ${CMAKE_INSTALL_PREFIX}/examples/${name}/openmp)
|
||||
endfunction()
|
||||
|
||||
#
|
||||
# Setup individual examples
|
||||
#
|
||||
add_wfr_example(montage-pegasus "")
|
||||
add_omp_example(montage-pegasus "")
|
||||
|
||||
add_wfr_example(povray "")
|
||||
add_omp_example(povray "")
|
||||
|
||||
add_wfr_example(raincloud "")
|
||||
add_omp_example(raincloud "")
|
||||
|
||||
|
||||
add_wfr_example(raincloud.test01 "")
|
||||
|
||||
add_wfr_example(raincloud.transformed "")
|
||||
|
||||
add_wfr_example(sparselu-for "")
|
||||
add_omp_example(sparselu-for "")
|
||||
|
||||
add_wfr_example(sparselu-for-trans01 "")
|
||||
|
||||
add_wfr_example(sparselu-while "")
|
||||
add_omp_example(sparselu-while "")
|
||||
|
||||
add_wfr_example(starrs-merge "")
|
||||
add_omp_example(starrs-merge "")
|
||||
|
||||
add_wfr_example(nested_for_01 "")
|
||||
add_wfr_example(nested_for_02 "")
|
||||
add_wfr_example(nested_for_02b "")
|
||||
add_wfr_example(nested_for_02c "")
|
||||
add_wfr_example(nested_for_02d "")
|
||||
add_wfr_example(nested_for_03 "")
|
||||
add_wfr_example(nested_for_04 "")
|
||||
|
||||
add_wfr_example(unrolling_for_01 "")
|
||||
add_wfr_example(unrolling_for_02 "")
|
||||
|
||||
|
||||
add_wfr_example(meteoag01 "")
|
||||
add_wfr_example(meteoag02 "")
|
||||
add_wfr_example(meteoag03 "")
|
||||
|
||||
add_wfr_example(blast01 "")
|
||||
add_wfr_example(blast02 "")
|
||||
|
||||
Reference in New Issue
Block a user