25 integration_kernel.cpp
34 parser/default_reader.cpp
36 parser/parse_binop_rhs.cpp
37 parser/parse_context.cpp
38 parser/parser_compat.cpp
40 polynomial/chinrem_gcd.cpp
41 polynomial/collect_vargs.cpp
42 polynomial/cra_garner.cpp
43 polynomial/divide_in_z_p.cpp
44 polynomial/gcd_uvar.cpp
46 polynomial/mod_gcd.cpp
47 polynomial/normalize.cpp
48 polynomial/optimal_vars_finder.cpp
50 polynomial/primpart_content.cpp
51 polynomial/remainder.cpp
52 polynomial/upoly_io.cpp
66 set(ginaclib_public_headers
87 ${CMAKE_CURRENT_BINARY_DIR}/function.h
114 parser/parse_context.h
117 set(ginaclib_private_headers
122 utils_multi_iterator.h
125 polynomial/gcd_euclid.h
126 polynomial/remainder.h
127 polynomial/normalize.h
129 polynomial/ring_traits.h
131 polynomial/cra_garner.h
132 polynomial/upoly_io.h
133 polynomial/prem_uvar.h
134 polynomial/eval_uvar.h
135 polynomial/interpolate_padic_uvar.h
136 polynomial/sr_gcd_uvar.h
137 polynomial/heur_gcd_uvar.h
138 polynomial/chinrem_gcd.h
139 polynomial/collect_vargs.h
140 polynomial/divide_in_z_p.h
141 polynomial/euclid_gcd_wrap.h
142 polynomial/eval_point_finder.h
143 polynomial/newton_interpolate.h
144 polynomial/optimal_vars_finder.h
146 polynomial/poly_cra.h
147 polynomial/primes_factory.h
148 polynomial/smod_helpers.h
152 add_library(ginac ${ginaclib_sources})
153 add_library(ginac::ginac ALIAS ginac)
154 set_target_properties(ginac PROPERTIES
155 SOVERSION ${ginaclib_soversion}
156 VERSION ${ginaclib_version})
157 target_compile_definitions(ginac
158 PUBLIC $<BUILD_INTERFACE:IN_GINAC>
159 PRIVATE -DLIBEXECDIR="${LIBEXECDIR}/" HAVE_CONFIG_H
161 target_link_libraries(ginac PUBLIC cln::cln ${LIBDL_LIBRARIES})
162 target_include_directories(ginac PUBLIC
163 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
164 $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
165 $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/..>
166 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
169 if (WIN32 AND CMAKE_COMPILER_IS_GNUCXX AND BUILD_SHARED_LIBS)
170 set_target_properties(ginac PROPERTIES
171 LINK_FLAGS "-Wl,--enable-auto-import -Wl,--export-all-symbols"
175 if (NOT BUILD_SHARED_LIBS)
176 set_target_properties(ginac PROPERTIES OUTPUT_NAME "ginac")
177 # Avoid the static library vs import library conflict (necessary for
179 set_target_properties(ginac PROPERTIES PREFIX "lib")
182 install(TARGETS ginac
184 LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
185 RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
186 ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
188 install(FILES ${ginaclib_public_headers} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/ginac")
189 install(EXPORT ginac-exports
190 FILE ginac-targets.cmake
192 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ginac
196 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/function.h
197 COMMAND ${PYTHON} ${CMAKE_CURRENT_SOURCE_DIR}/function.py -o ${CMAKE_CURRENT_BINARY_DIR}/function.h ${CMAKE_CURRENT_SOURCE_DIR}/function.hppy
198 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/function.hppy ${CMAKE_CURRENT_SOURCE_DIR}/function.py)
201 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/function.cpp
202 COMMAND ${PYTHON} ${CMAKE_CURRENT_SOURCE_DIR}/function.py -o ${CMAKE_CURRENT_BINARY_DIR}/function.cpp ${CMAKE_CURRENT_SOURCE_DIR}/function.cppy
203 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/function.h ${CMAKE_CURRENT_SOURCE_DIR}/function.cppy ${CMAKE_CURRENT_SOURCE_DIR}/function.py)