@@ -83,8 +83,7 @@ if(NOT mpdecimal_FOUND)
8383 if (BUILD_SHARED_LIBS )
8484 target_compile_definitions (mpdecimal PRIVATE BUILD_LIBMPDEC)
8585 else ()
86- set_target_properties (mpdecimal PROPERTIES
87- MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>" )
86+ target_compile_options (mpdecimal PRIVATE /U_DLL)
8887 endif ()
8988 endif ()
9089
@@ -98,6 +97,48 @@ if(NOT mpdecimal_FOUND)
9897 C_VISIBILITY_INLINES_HIDDEN FALSE
9998 EXPORT_NAME mpdecimal)
10099
100+ set (MPDECIMALXX_DIR "${MPDECIMAL_DIR} /libmpdec++" )
101+ set (MPDECIMALXX_PUBLIC_HEADER "${MPDECIMALXX_DIR} /decimal.hh" )
102+ set (MPDECIMALXX_SOURCES "${MPDECIMALXX_DIR} /decimal.cc" )
103+
104+ add_library (mpdecimalxx ${MPDECIMALXX_SOURCES} )
105+
106+ target_include_directories (mpdecimalxx PRIVATE
107+ "${MPDECIMALXX_DIR} "
108+ "${MPDECIMAL_SOURCE_DIR} " )
109+
110+ target_include_directories (mpdecimalxx PUBLIC
111+ "$<BUILD_INTERFACE:${MPDECIMALXX_DIR} >"
112+ "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >" )
113+
114+ target_link_libraries (mpdecimalxx PUBLIC mpdecimal)
115+
116+ if (UNIX )
117+ find_package (Threads REQUIRED)
118+ target_link_libraries (mpdecimalxx PRIVATE Threads::Threads)
119+ if (NOT APPLE )
120+ target_link_libraries (mpdecimalxx PRIVATE m)
121+ endif ()
122+ endif ()
123+
124+ if (MSVC )
125+ if (BUILD_SHARED_LIBS )
126+ target_compile_definitions (mpdecimalxx PRIVATE BUILD_LIBMPDECXX)
127+ else ()
128+ target_compile_options (mpdecimalxx PRIVATE /U_DLL)
129+ endif ()
130+ endif ()
131+
132+ add_library (mpdecimal::mpdecimalxx ALIAS mpdecimalxx)
133+
134+ set_target_properties (mpdecimalxx
135+ PROPERTIES
136+ OUTPUT_NAME mpdecimalxx
137+ PUBLIC_HEADER "${MPDECIMALXX_PUBLIC_HEADER} "
138+ CXX_VISIBILITY_PRESET "default"
139+ VISIBILITY_INLINES_HIDDEN FALSE
140+ EXPORT_NAME mpdecimalxx)
141+
101142 if (SOURCEMETA_CORE_INSTALL)
102143 include (GNUInstallDirs)
103144 install (TARGETS mpdecimal
@@ -123,6 +164,35 @@ if(NOT mpdecimal_FOUND)
123164 "${CMAKE_CURRENT_BINARY_DIR} /mpdecimal-config.cmake"
124165 DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/mpdecimal"
125166 COMPONENT sourcemeta_core_dev)
167+
168+ install (TARGETS mpdecimalxx
169+ EXPORT mpdecimalxx
170+ PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} "
171+ COMPONENT sourcemeta_core_dev
172+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR} "
173+ COMPONENT sourcemeta_core
174+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR} "
175+ COMPONENT sourcemeta_core
176+ NAMELINK_COMPONENT sourcemeta_core_dev
177+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR} "
178+ COMPONENT sourcemeta_core_dev)
179+ install (EXPORT mpdecimalxx
180+ DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/mpdecimalxx"
181+ NAMESPACE mpdecimal::
182+ COMPONENT sourcemeta_core_dev)
183+
184+ file (WRITE ${CMAKE_CURRENT_BINARY_DIR} /mpdecimalxx-config.cmake
185+ "include(CMakeFindDependencyMacro)\n "
186+ "find_dependency(mpdecimal CONFIG)\n "
187+ "if(UNIX)\n "
188+ " find_dependency(Threads)\n "
189+ "endif()\n "
190+ "include(\"\$ {CMAKE_CURRENT_LIST_DIR}/mpdecimalxx.cmake\" )\n "
191+ "check_required_components(\" mpdecimalxx\" )\n " )
192+ install (FILES
193+ "${CMAKE_CURRENT_BINARY_DIR} /mpdecimalxx-config.cmake"
194+ DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/mpdecimalxx"
195+ COMPONENT sourcemeta_core_dev)
126196 endif ()
127197
128198 set (mpdecimal_FOUND ON )
0 commit comments