File: CMakeLists.txt

package info (click to toggle)
ifcplusplus 0~git20190402.13744d5%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 16,756 kB
  • sloc: cpp: 199,084; makefile: 24
file content (101 lines) | stat: -rw-r--r-- 2,710 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
CMAKE_MINIMUM_REQUIRED (VERSION 3.7.2)

IF(NOT WIN32)
IF(NOT CMAKE_BUILD_TYPE)
    SET(CMAKE_BUILD_TYPE "Release")
ENDIF()

SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE})
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE})
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE})
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE})
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE})
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE})
ENDIF(NOT WIN32)

FIND_PACKAGE(Boost REQUIRED)

FILE (GLOB ifc4_source "src/ifcpp/IFC4/lib/*.cpp")

SET(IFCPP_SOURCE_FILES 
  src/ifcpp/IFC4/EntityFactory.cpp
  src/ifcpp/IFC4/TypeFactory.cpp
  src/ifcpp/model/BuildingModel.cpp
  src/ifcpp/model/UnitConverter.cpp
  src/ifcpp/reader/AbstractReader.cpp
  src/ifcpp/reader/ReaderSTEP.cpp
  src/ifcpp/reader/ReaderXML.cpp
  src/ifcpp/reader/ReaderUtil.cpp
  src/ifcpp/writer/WriterSTEP.cpp
  src/ifcpp/writer/WriterUtil.cpp

  ${ifc4_source}
)

if (MSVC)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj ")
    
ENDIF()

IF(BUILD_STATIC_LIBRARY)
    ADD_LIBRARY(IfcPlusPlus STATIC ${IFCPP_SOURCE_FILES})
ELSE(BUILD_STATIC_LIBRARY)
    ADD_DEFINITIONS(-DIFCQUERY_AS_DYNAMIC_LIBRARY)
    ADD_DEFINITIONS(-DIFCQUERY_LIB)
    ADD_LIBRARY(IfcPlusPlus SHARED ${IFCPP_SOURCE_FILES})
ENDIF(BUILD_STATIC_LIBRARY)

TARGET_LINK_LIBRARIES(IfcPlusPlus
  PUBLIC
    carve)

TARGET_INCLUDE_DIRECTORIES(IfcPlusPlus
  PUBLIC
    "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>"
    "$<INSTALL_INTERFACE:include>")

IF(Boost_FOUND)

    TARGET_INCLUDE_DIRECTORIES(IfcPlusPlus
      PUBLIC
        ${Boost_INCLUDE_DIRS})

    TARGET_COMPILE_DEFINITIONS(IfcPlusPlus
      PUBLIC
        CARVE_SYSTEM_BOOST)

ENDIF()

set_target_properties(IfcPlusPlus PROPERTIES DEBUG_POSTFIX "d")

IF(WIN32)
    set_target_properties(IfcPlusPlus PROPERTIES LINK_FLAGS_DEBUG "/debug /INCREMENTAL:NO")
ENDIF()


INSTALL(
    DIRECTORY   src/ifcpp
    DESTINATION include
    FILES_MATCHING PATTERN "*.h"
)
INSTALL(
    TARGETS IfcPlusPlus
    EXPORT  IfcPlusPlus
    RUNTIME DESTINATION bin
    LIBRARY DESTINATION lib
    ARCHIVE DESTINATION lib
)

SET(target_output_filename IfcPlusPlus-targets.cmake)
SET(target_output "${CMAKE_BINARY_DIR}/cmake/${target_output_filename}")

export(
  EXPORT IfcPlusPlus
  FILE ${target_output}
  NAMESPACE IFCPP::)

install(
  EXPORT IfcPlusPlus
  DESTINATION ${IFCPP_CONFIG_DIR}
  FILE ${target_output_filename}
  NAMESPACE IFCPP::)