cmake编写模板

cmake_minimum_required(VERSION 3.8)
project(VertData)

set(CMAKE_CXX_STANDARD 11) 
add_definitions(-std=c++11)
AUX_SOURCE_DIRECTORY(. SOURCE_FILES) 

set (EXTENDS_PATH "${PROJECT_SOURCE_DIR}/../Library")
# set(TARGET test PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreadedDLL<$<CONFIG:Debug>:Debug>")
 
MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}")

# check system ostype windows or other
IF (CMAKE_SYSTEM_NAME MATCHES "Windows")
    MESSAGE(STATUS "current platform: Windows")

	# add include dirent.h and unistd.h 
	include_directories(${EXTENDS_PATH}
                        ${EXTENDS_PATH}/compat_winh
		        ${EXTENDS_PATH}/alglib 
                        ${EXTENDS_PATH}/hdf5/windows/include
                        ${EXTENDS_PATH}/z/include
			${EXTENDS_PATH}/netcdf/windows/include
			${EXTENDS_PATH}/netcdf/windows/cxx4)
	link_libraries( 
		        "${EXTENDS_PATH}/hdf5/windows/lib/libhdf5.lib" 
			"${EXTENDS_PATH}/hdf5/windows/lib/libhdf5_hl.lib"
			"${EXTENDS_PATH}/hdf5/windows/lib/libhdf5_cpp.lib" 
			"${EXTENDS_PATH}/hdf5/windows/lib/libhdf5_hl_cpp.lib"
			"${EXTENDS_PATH}/hdf5/windows/lib/libhdf5_tools.lib"
			"${EXTENDS_PATH}/hdf5/windows/lib/libszip.lib"
			"${EXTENDS_PATH}/hdf5/windows/lib/libzlib.lib"
			"${EXTENDS_PATH}/alglib_static/alglib.lib"
			"${EXTENDS_PATH}/netcdf/windows/lib/netcdf.lib"
			"${EXTENDS_PATH}/netcdf/windows/lib/ndf.lib"
			)
ELSE ()
    MESSAGE(STATUS "other platform: ${CMAKE_SYSTEM_NAME}")
	# exclude dirent.h and unistd.h 
	include_directories(
			  ${EXTENDS_PATH}
                          ${EXTENDS_PATH}/alglib 
                          ${EXTENDS_PATH}/hdf5/linux/include
                          ${EXTENDS_PATH}/z/include
			  ${EXTENDS_PATH}/netcdf/linux/include
			  ${EXTENDS_PATH}/netcdf/linux/cxx4
			)
	link_directories(${EXTENDS_PATH}/hdf5/linux/lib
			  ${EXTENDS_PATH}/alglib_static
                          ${EXTENDS_PATH}/z/lib
                          ${EXTENDS_PATH}/netcdf/linux/lib)  
    link_libraries(-lhdf5 -lhdf5_hl -lhdf5_cpp -lhdf5_hl_cpp -lalglib -z -ldl -lnetcdf -lndf -lm)
ENDIF (CMAKE_SYSTEM_NAME MATCHES "Linux")

add_executable(main ${SOURCE_FILES})

posted @ 2022-09-15 09:40  xiaomaixiaomai  阅读(99)  评论(0)    收藏  举报