update cmakelists
This commit is contained in:
		| @@ -1,29 +1,19 @@ | |||||||
| cmake_minimum_required(VERSION 3.15.2) | cmake_minimum_required(VERSION 3.15.2) | ||||||
|  |  | ||||||
| # 设置工程名称和语言 | # 设置工程名称和语言 | ||||||
| project(NETCDF_CXX) | project(NETCDF_CXX) | ||||||
|  | # 设置编译类型 | ||||||
|  | set(CMAKE_BUILD_TYPE Release) | ||||||
|  |  | ||||||
|  | if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows") | ||||||
|  |     # 设置windows安装地址 | ||||||
|  |     set(CMAKE_INSTALL_PREFIX D:/Library) | ||||||
|  | else() | ||||||
|  |     # 设置Linux/Unix系统安装地址 | ||||||
|  |     set(CMAKE_INSTALL_PREFIX /opt/stow/netcdfcxx_legacy) | ||||||
|  | endif() | ||||||
|  |  | ||||||
| message(STATUS "Platform: " ${CMAKE_HOST_SYSTEM_NAME}) | message(STATUS "Platform: " ${CMAKE_HOST_SYSTEM_NAME}) | ||||||
| if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Linux") |  | ||||||
|     # 配置netcdf C语言库的地址 |  | ||||||
|     set(LIB_NETCDF /usr/local) |  | ||||||
| elseif (${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Darwin" AND ${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64") |  | ||||||
|     # 配置netcdf C语言库的地址 |  | ||||||
|     set(LIB_NETCDF /usr/local) |  | ||||||
| elseif (${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Darwin") |  | ||||||
|     # 配置netcdf C语言库的地址 |  | ||||||
|     set(LIB_NETCDF /opt/homebrew) |  | ||||||
| elseif(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows") |  | ||||||
|     set(LIB_NETCDF C:/Program\ Files/netCDF\ 4.8.0) |  | ||||||
|     # 由于不能使用config.sh 我们需要单独为windows单独设置安装地址 |  | ||||||
|     set(CMAKE_INSTALL_PREFIX D:/Library) |  | ||||||
| endif() |  | ||||||
| message(STATUS "Install prefix: " ${CMAKE_INSTALL_PREFIX}) | message(STATUS "Install prefix: " ${CMAKE_INSTALL_PREFIX}) | ||||||
|  |  | ||||||
| # 设置netcdf c接口的库文件地址 |  | ||||||
| set(LIB_NETCDF_INC ${LIB_NETCDF}/include) |  | ||||||
| set(LIB_NETCDF_LIB ${LIB_NETCDF}/lib) |  | ||||||
| message(STATUS "netCDF directory: " ${LIB_NETCDF}) |  | ||||||
|  |  | ||||||
| # 添加源文件地址 | # 添加源文件地址 | ||||||
| add_subdirectory(src/) | add_subdirectory(src/) | ||||||
							
								
								
									
										17
									
								
								config.sh
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								config.sh
									
									
									
									
									
								
							| @@ -1,17 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
|  |  | ||||||
| cmd=${1} |  | ||||||
| package=netcdfcxx_legacy |  | ||||||
| address=/opt/stow |  | ||||||
| targetdir=/usr/local |  | ||||||
|  |  | ||||||
| if [[ ${cmd} == "configure" && ! -d "build/" ]]; then |  | ||||||
| 	mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=${address}/${package} -DCMAKE_BUILD_TYPE=Release |  | ||||||
| elif [[ ${cmd} == "configure" ]]; then |  | ||||||
| 	cd build && rm -rf * && cmake .. -DCMAKE_INSTALL_PREFIX=${address}/${package} -DCMAKE_BUILD_TYPE=Release |  | ||||||
| elif [[ ${cmd} == "build" ]]; then |  | ||||||
| 	cd build && make |  | ||||||
| elif [[ ${cmd} == "install" ]]; then |  | ||||||
| 	cd build && sudo make install |  | ||||||
| 	sudo stow --dir=${address} --target=${targetdir} ${package} |  | ||||||
| fi |  | ||||||
| @@ -1,9 +1,11 @@ | |||||||
| # 设定源文件文件夹 | # 设定源文件文件夹 | ||||||
| aux_source_directory(lib/ NETCDF_SRC) | aux_source_directory(lib/ NETCDF_SRC) | ||||||
| # netcdf安装后的动态库与静态库的地址不一样 需要手动在cmake生成的VS工程内添加下面的库地址 |  | ||||||
| # 方法如下:gctl->属性->链接器->附件库目录(选择编辑,并选择netcdf的可执行文件地址) | # 寻找netCDF库地址 | ||||||
| #set(LIB_NETCDF_BIN C:/Program\ Files/netCDF\ 4.8.0/bin) | find_package(netCDF REQUIRED) | ||||||
| include_directories(${LIB_NETCDF_INC}) | if(netCDF_FOUND) | ||||||
|  |     include_directories(${netCDF_INCLUDE_DIR}) | ||||||
|  | endif() | ||||||
|  |  | ||||||
| # 设置编译选项 | # 设置编译选项 | ||||||
| set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2") | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2") | ||||||
| @@ -25,7 +27,7 @@ set_target_properties(netcdfcxx_legacy_static PROPERTIES CLEAN_DIRECT_OUTPUT 1) | |||||||
| # 设置动态库的版本号 | # 设置动态库的版本号 | ||||||
| set_target_properties(netcdfcxx_legacy PROPERTIES VERSION 1.0 SOVERSION 1.0) | set_target_properties(netcdfcxx_legacy PROPERTIES VERSION 1.0 SOVERSION 1.0) | ||||||
|  |  | ||||||
| find_library(NETCDF_LIBRARY netcdf ${LIB_NETCDF_LIB}) | find_library(NETCDF_LIBRARY ${netCDF_LIBRARIES} ${netCDF_LIB_DIR}) | ||||||
| target_link_libraries(netcdfcxx_legacy PUBLIC ${NETCDF_LIBRARY}) | target_link_libraries(netcdfcxx_legacy PUBLIC ${NETCDF_LIBRARY}) | ||||||
| target_link_libraries(netcdfcxx_legacy_static ${NETCDF_LIBRARY}) | target_link_libraries(netcdfcxx_legacy_static ${NETCDF_LIBRARY}) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								stow_config.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								stow_config.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | #!/bin/bash | ||||||
|  |  | ||||||
|  | sudo stow --dir=/opt/stow --target=/usr/local netcdfcxx_legacy | ||||||
		Reference in New Issue
	
	Block a user