cmake_minimum_required(VERSION 3.5) project(TF_CUSTOM_OP) set (CMAKE_CXX_STANDARD 11) message("JULIA=${JULIA}") execute_process(COMMAND ${JULIA} -e "import ADCME; print(ADCME.__STR__)" OUTPUT_VARIABLE JL_OUT) list(GET JL_OUT 0 BINDIR) list(GET JL_OUT 1 LIBDIR) list(GET JL_OUT 2 TF_INC) list(GET JL_OUT 3 TF_ABI) list(GET JL_OUT 4 EIGEN_INC) list(GET JL_OUT 5 CC) list(GET JL_OUT 6 CXX) list(GET JL_OUT 7 CMAKE) list(GET JL_OUT 8 MAKE) list(GET JL_OUT 9 GIT) list(GET JL_OUT 10 PYTHON) list(GET JL_OUT 11 TF_LIB_FILE) message("BINDIR=${BINDIR}") message("LIBDIR=${LIBDIR}") message("TF_INC=${TF_INC}") message("TF_ABI=${TF_ABI}") message("EIGEN_INC=${EIGEN_INC}") message("Python path=${PYTHON}") message("TF_LIB_FILE=${TF_LIB_FILE}") if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 5.0 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 5.0) set(CMAKE_CXX_FLAGS "-D_GLIBCXX_USE_CXX11_ABI=${TF_ABI} ${CMAKE_CXX_FLAGS}") endif() set(CMAKE_BUILD_TYPE Release) if(MSVC) set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG") else() set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG") endif() include_directories(${TF_INC} ${EIGEN_INC}) link_directories(${TF_LIB}) if(MSVC) if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") string(REGEX REPLACE "/W[0-4]" "/W0" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W0") endif() add_library(Saver SHARED Saver.cpp SaveTensor.cpp GetTensor.cpp DeleteTensor.cpp) set_property(TARGET Saver PROPERTY POSITION_INDEPENDENT_CODE ON) target_link_libraries(Saver ${TF_LIB_FILE}) add_definitions(-DNOMINMAX) else() add_library(Saver SHARED Saver.cpp) set_property(TARGET Saver PROPERTY POSITION_INDEPENDENT_CODE ON) add_library(SaveTensor SHARED SaveTensor.cpp) set_property(TARGET SaveTensor PROPERTY POSITION_INDEPENDENT_CODE ON) target_link_libraries(SaveTensor ${TF_LIB_FILE} Saver) add_library(GetTensor SHARED GetTensor.cpp) set_property(TARGET GetTensor PROPERTY POSITION_INDEPENDENT_CODE ON) target_link_libraries(GetTensor ${TF_LIB_FILE} Saver) add_library(DeleteTensor SHARED DeleteTensor.cpp) set_property(TARGET DeleteTensor PROPERTY POSITION_INDEPENDENT_CODE ON) target_link_libraries(DeleteTensor ${TF_LIB_FILE} Saver) endif()