Skip to content

Commit a58feb2

Browse files
yajiedesigntqchen
authored andcommitted
add cmake with windows (#40)
1 parent ac1240c commit a58feb2

File tree

4 files changed

+483
-0
lines changed

4 files changed

+483
-0
lines changed

nnvm/CMakeLists.txt

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
cmake_minimum_required(VERSION 2.8.7)
2+
3+
project(nnvm C CXX)
4+
5+
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules)
6+
7+
include(cmake/Utils.cmake)
8+
9+
# include path
10+
include_directories(BEFORE "include")
11+
12+
set(nnvm_LINKER_LIBS "")
13+
14+
add_definitions(-DNNVM_EXPORTS)
15+
16+
# compile
17+
if(MSVC)
18+
add_definitions(-DDMLC_USE_CXX11)
19+
add_definitions(-DDMLC_STRICT_CXX11)
20+
foreach(flag_var
21+
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
22+
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
23+
if(${flag_var} MATCHES "/MD")
24+
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
25+
endif(${flag_var} MATCHES "/MD")
26+
endforeach(flag_var)
27+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc")
28+
else(MSVC)
29+
include(CheckCXXCompilerFlag)
30+
check_cxx_compiler_flag("-std=c++0x" SUPPORT_CXX0X)
31+
check_cxx_compiler_flag("-msse2" SUPPORT_MSSE2)
32+
check_cxx_compiler_flag("-openmp" SUPPORT_OPENMP)
33+
set(CMAKE_C_FLAGS "-O3 -Wall -msse2 -Wno-unknown-pragmas -std=c++0x -fPIC")
34+
if(SUPPORT_OPENMP)
35+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp")
36+
endif()
37+
set(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS})
38+
endif(MSVC)
39+
40+
mxnet_source_group("Include\\c_api" GLOB "src/c_api/*.h")
41+
mxnet_source_group("Include\\core" GLOB "src/core/*.h")
42+
mxnet_source_group("Include\\pass" GLOB "src/pass/*.h")
43+
mxnet_source_group("Include\\nnvm" GLOB "include/nnvm/*.h")
44+
mxnet_source_group("Include\\dmlc" GLOB "include/dmlc/*.h")
45+
46+
mxnet_source_group("Source" GLOB "src/*.cc")
47+
mxnet_source_group("Source\\c_api" GLOB "src/c_api/*.cc")
48+
mxnet_source_group("Source\\core" GLOB "src/core/*.cc")
49+
mxnet_source_group("Source\\pass" GLOB "src/pass/*.cc")
50+
51+
52+
FILE(GLOB_RECURSE SOURCE "src/*.cc" "src/*.h" "include/*.h")
53+
54+
add_library(nnvm ${SOURCE})
55+
target_link_libraries(nnvm ${nnvm_LINKER_LIBS})
56+
57+
# ---[ Linter target
58+
if(MSVC)
59+
find_package(PythonInterp 2)
60+
set(PYTHON2_EXECUTABLE ${PYTHON_EXECUTABLE} CACHE FILEPATH "Path to the python 2.x executable")
61+
find_package(PythonInterp 3)
62+
set(PYTHON3_EXECUTABLE ${PYTHON_EXECUTABLE} CACHE FILEPATH "Path to the python 3.x executable")
63+
endif()
64+
set(LINT_DIRS include src scripts)
65+
add_custom_target(nnvm_lint COMMAND ${CMAKE_COMMAND} -DMSVC=${MSVC} -DPYTHON2_EXECUTABLE=${PYTHON2_EXECUTABLE} -DPYTHON3_EXECUTABLE=${PYTHON3_EXECUTABLE} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -DLINT_DIRS=${LINT_DIRS} -DPROJECT_NAME=dmlc -P ${PROJECT_SOURCE_DIR}/cmake/lint.cmake)

0 commit comments

Comments
 (0)