2022-12-04 15:12:12 -06:00

62 lines
2.5 KiB
CMake

cmake_minimum_required(VERSION 3.0)
project(par_gwas)
# Common compiler options among built types
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--allow-multiple-definition")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# Specific compiler options for Debug or Release builds
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0 -ggdb -Wall -fopenmp -pedantic")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -g -Wall -fopenmp -pedantic -O1")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O1 -fopenmp")
find_package(OpenMP REQUIRED)
find_package(MPI REQUIRED)
find_package(Boost REQUIRED mpi)
find_package(Palisade REQUIRED PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../Duality_Technologies/PALISADE/)
set( CMAKE_CXX_FLAGS ${PALISADE_CXX_FLAGS} )
set( CMAKE_EXE_LINKER_FLAGS ${PALISADE_EXE_LINKER_FLAGS} )
include_directories( ${PALISADE_INCLUDE} )
include_directories( ${PALISADE_INCLUDE}/core )
include_directories( ${PALISADE_INCLUDE}/pke )
include_directories(${Boost_INCLUDE_DIR})
include_directories("${CMAKE_SOURCE_DIR}/Duality_Technologies/GWAS/")
#include_directories("${CMAKE_SOURCE_DIR}/PLINK/libplinkio/")
#include_directories("${CMAKE_SOURCE_DIR}/PLINK/libplinkio/install/include/plinkio/")
#include_directories("${CMAKE_SOURCE_DIR}/PLINK/libplinkio/libs/cmockery/")
#include_directories("${CMAKE_SOURCE_DIR}/PLINK/libplinkio/libs/libcsv/inc/")
link_directories( ${PALISADE_LIBDIR} )
# Enable thread-level parallelization if OpenMP is found.
if(OpenMP_CXX_FOUND)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif()
if(MPI_CXX_FOUND)
INCLUDE_DIRECTORIES(${MPI_CXX_INCLUDE_PATH})
LIST(APPEND SCR_EXTERNAL_LIBS ${MPI_CXX_LIBRARIES})
#set(CMAKE_CXX_COMPILER "mpic++")
endif()
file(GLOB gwas_src "${CMAKE_SOURCE_DIR}/Duality_Technologies/GWAS/demo-chi2.cpp" "${CMAKE_SOURCE_DIR}/Duality_Technologies/GWAS/demo-chi2.h")
#add_library(gwas "${CMAKE_SOURCE_DIR}/Duality_Technologies/GWAS/demo-chi2.cpp")
#file(GLOB libplink_src "${CMAKE_SOURCE_DIR}/PLINK/libplinkio/src/*.c" "${CMAKE_SOURCE_DIR}/PLINK/libplinkio/src/*.cpp")
#file(GLOB plinkio_src "${CMAKE_SOURCE_DIR}/PLINK/libplinkio/src/plinkio/*.c" "${CMAKE_SOURCE_DIR}/PLINK/libplinkio/src/plinkio/*.cpp")
add_executable(par_gwas "${CMAKE_SOURCE_DIR}/src/main.cpp" ${gwas_src})
target_link_libraries(par_gwas Boost::mpi ${MPI_CXX_LIBRARIES}) #libplinkio)
# ${gwas_src}) #${libplink_src}) #${plinkio_src})