diff --git a/CMakeLists.txt b/CMakeLists.txt index 412de9b..90427e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,14 @@ ENDIF() PROJECT(openEMS CXX) cmake_minimum_required(VERSION 2.8) +# default +set(LIB_VERSION_MAJOR 0) +set(LIB_VERSION_MINOR 0) +set(LIB_VERSION_PATCH 33) +set(LIB_VERSION_STRING ${LIB_VERSION_MAJOR}.${LIB_VERSION_MINOR}.${LIB_VERSION_PATCH}) + +set(VERSION "v${LIB_VERSION_STRING}") + IF(EXISTS ${PROJECT_SOURCE_DIR}/localConfig.cmake) include(${PROJECT_SOURCE_DIR}/localConfig.cmake) ENDIF() @@ -131,36 +139,28 @@ message(STATUS "vtk libraries " ${vtk_LIBS}) include(${VTK_USE_FILE}) INCLUDE_DIRECTORIES (${VTK_INCLUDE_DIR}) -if(WIN32) - set(CMAKE_CXX_FLAGS "-msse") -endif() +#set(CMAKE_CXX_FLAGS "-msse -march=native") # independent tool ADD_SUBDIRECTORY( nf2ff ) +set(SOURCES + openems.cpp +) + # libs ADD_SUBDIRECTORY( tools ) ADD_SUBDIRECTORY( FDTD ) ADD_SUBDIRECTORY( FDTD/extensions ) - -# depend on CSXCAD ADD_SUBDIRECTORY( Common ) -# main program -set(SOURCES - main.cpp - openems.cpp -) - INCLUDE_DIRECTORIES( ${openEMS_SOURCE_DIR} ) #find tools -ADD_EXECUTABLE( openEMS ${SOURCES} ) +message(STATUS "Sources:" ${SOURCES}) +add_library( openEMS SHARED ${SOURCES}) +set_target_properties(openEMS PROPERTIES VERSION ${LIB_VERSION_STRING} SOVERSION ${LIB_VERSION_MAJOR}) TARGET_LINK_LIBRARIES( openEMS - FDTD - Common - extensions - tools ${CSXCAD_LIBRARIES} ${fparser_LIBRARIES} tinyxml @@ -169,8 +169,13 @@ TARGET_LINK_LIBRARIES( openEMS ${vtk_LIBS} ) - -INSTALL( TARGETS openEMS DESTINATION bin ) +# main program +ADD_EXECUTABLE( openEMS_bin main.cpp ) +SET_TARGET_PROPERTIES(openEMS_bin PROPERTIES OUTPUT_NAME openEMS) +TARGET_LINK_LIBRARIES(openEMS_bin openEMS) + +INSTALL(TARGETS openEMS DESTINATION lib${LIB_SUFFIX}) +INSTALL(TARGETS openEMS_bin DESTINATION bin ) if (UNIX) INSTALL( FILES openEMS.sh DESTINATION bin diff --git a/Common/CMakeLists.txt b/Common/CMakeLists.txt index c2c44a3..004b35e 100644 --- a/Common/CMakeLists.txt +++ b/Common/CMakeLists.txt @@ -1,21 +1,23 @@ -INCLUDE_DIRECTORIES( ${openEMS_SOURCE_DIR} ) +#INCLUDE_DIRECTORIES( ${openEMS_SOURCE_DIR} ) -set( SOURCES - engine_interface_base.cpp - operator_base.cpp - processcurrent.cpp - processfieldprobe.cpp - processfields.cpp - processfields_fd.cpp - processfields_sar.cpp - processfields_td.cpp - processing.cpp - processintegral.cpp - processmodematch.cpp - processvoltage.cpp +set(SOURCES + ${SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/engine_interface_base.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operator_base.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/processcurrent.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/processfieldprobe.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/processfields.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/processfields_fd.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/processfields_sar.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/processfields_td.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/processing.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/processintegral.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/processmodematch.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/processvoltage.cpp + PARENT_SCOPE ) # Common lib -add_library( Common STATIC ${SOURCES} ) +#add_library( Common STATIC ${SOURCES} ) diff --git a/FDTD/CMakeLists.txt b/FDTD/CMakeLists.txt index bbef2f2..630f611 100644 --- a/FDTD/CMakeLists.txt +++ b/FDTD/CMakeLists.txt @@ -1,25 +1,27 @@ -INCLUDE_DIRECTORIES( ${openEMS_SOURCE_DIR} ) +#INCLUDE_DIRECTORIES( ${openEMS_SOURCE_DIR} ) set(SOURCES - engine.cpp - operator.cpp - engine_multithread.cpp - operator_cylinder.cpp - engine_cylinder.cpp - engine_sse.cpp - operator_sse.cpp - operator_sse_compressed.cpp - engine_sse_compressed.cpp - operator_multithread.cpp - excitation.cpp - operator_cylindermultigrid.cpp - engine_cylindermultigrid.cpp - engine_interface_fdtd.cpp - engine_interface_sse_fdtd.cpp - engine_interface_cylindrical_fdtd.cpp + ${SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/engine.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operator.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/engine_multithread.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operator_cylinder.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/engine_cylinder.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/engine_sse.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operator_sse.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operator_sse_compressed.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/engine_sse_compressed.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operator_multithread.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/excitation.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operator_cylindermultigrid.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/engine_cylindermultigrid.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/engine_interface_fdtd.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/engine_interface_sse_fdtd.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/engine_interface_cylindrical_fdtd.cpp + PARENT_SCOPE ) # FDTD lib -add_library( FDTD STATIC ${SOURCES} ) +#add_library( FDTD STATIC ${SOURCES} ) diff --git a/FDTD/extensions/CMakeLists.txt b/FDTD/extensions/CMakeLists.txt index f60cae3..3566944 100644 --- a/FDTD/extensions/CMakeLists.txt +++ b/FDTD/extensions/CMakeLists.txt @@ -1,30 +1,32 @@ -INCLUDE_DIRECTORIES( ${openEMS_SOURCE_DIR} ) -INCLUDE_DIRECTORIES( ${CSXCAD_SOURCE_DIR}/src ) +#INCLUDE_DIRECTORIES( ${openEMS_SOURCE_DIR} ) +#INCLUDE_DIRECTORIES( ${CSXCAD_SOURCE_DIR}/src ) set(SOURCES - engine_extension.cpp - operator_ext_dispersive.cpp - operator_ext_lorentzmaterial.cpp - operator_ext_conductingsheet.cpp - engine_ext_dispersive.cpp - engine_ext_lorentzmaterial.cpp - engine_ext_cylindermultigrid.cpp - operator_ext_upml.cpp - engine_ext_upml.cpp - operator_extension.cpp - engine_ext_mur_abc.cpp - operator_ext_mur_abc.cpp - operator_ext_cylinder.cpp - engine_ext_cylinder.cpp - operator_ext_excitation.cpp - engine_ext_excitation.cpp - operator_ext_tfsf.cpp - engine_ext_tfsf.cpp - operator_ext_steadystate.cpp - engine_ext_steadystate.cpp + ${SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/engine_extension.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operator_ext_dispersive.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operator_ext_lorentzmaterial.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operator_ext_conductingsheet.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/engine_ext_dispersive.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/engine_ext_lorentzmaterial.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/engine_ext_cylindermultigrid.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operator_ext_upml.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/engine_ext_upml.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operator_extension.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/engine_ext_mur_abc.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operator_ext_mur_abc.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operator_ext_cylinder.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/engine_ext_cylinder.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operator_ext_excitation.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/engine_ext_excitation.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operator_ext_tfsf.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/engine_ext_tfsf.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/operator_ext_steadystate.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/engine_ext_steadystate.cpp + PARENT_SCOPE ) # FDTD/extensions lib -add_library( extensions STATIC ${SOURCES} ) +#add_library( extensions STATIC ${SOURCES} ) diff --git a/nf2ff/CMakeLists.txt b/nf2ff/CMakeLists.txt index a9ddef1..09f73cf 100644 --- a/nf2ff/CMakeLists.txt +++ b/nf2ff/CMakeLists.txt @@ -11,10 +11,15 @@ cmake_minimum_required(VERSION 2.8) set(SOURCES main.cpp - nf2ff.cpp - nf2ff_calc.cpp + nf2ff.cpp + nf2ff_calc.cpp + ../tools/array_ops.cpp + ../tools/useful.cpp + ../tools/hdf5_file_reader.cpp + ../tools/hdf5_file_writer.cpp ) +#ADD_SUBDIRECTORY( ../tools ) set(HEADERS nf2ff.h nf2ff_calc.h @@ -23,7 +28,6 @@ set(HEADERS ADD_EXECUTABLE( nf2ff ${SOURCES} ) TARGET_LINK_LIBRARIES( nf2ff - tools tinyxml ${HDF5_LIBRARIES} ${Boost_LIBRARIES} diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index d66a1e2..8b62b8a 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -1,14 +1,16 @@ set(SOURCES - AdrOp.cpp - ErrorMsg.cpp - array_ops.cpp - global.cpp - hdf5_file_reader.cpp - hdf5_file_writer.cpp - sar_calculation.cpp - useful.cpp - vtk_file_writer.cpp + ${SOURCES} + ${CMAKE_CURRENT_SOURCE_DIR}/AdrOp.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ErrorMsg.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/array_ops.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/global.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hdf5_file_reader.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/hdf5_file_writer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sar_calculation.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/useful.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/vtk_file_writer.cpp + PARENT_SCOPE ) #set(HEADERS @@ -22,5 +24,5 @@ set(SOURCES #) # tools lib -add_library(tools STATIC ${SOURCES} ) +#add_library(tools STATIC ${SOURCES} )