32 parser/default_reader.cpp
34 parser/parse_binop_rhs.cpp
35 parser/parse_context.cpp
36 parser/parser_compat.cpp
38 polynomial/chinrem_gcd.cpp
39 polynomial/collect_vargs.cpp
40 polynomial/cra_garner.cpp
41 polynomial/divide_in_z_p.cpp
42 polynomial/gcd_uvar.cpp
44 polynomial/mod_gcd.cpp
45 polynomial/normalize.cpp
46 polynomial/optimal_vars_finder.cpp
48 polynomial/primpart_content.cpp
49 polynomial/remainder.cpp
50 polynomial/upoly_io.cpp
64 set(ginaclib_public_headers
85 ${CMAKE_CURRENT_BINARY_DIR}/function.h
111 parser/parse_context.h
114 set(ginaclib_private_headers
121 polynomial/gcd_euclid.h
122 polynomial/remainder.h
123 polynomial/normalize.h
125 polynomial/ring_traits.h
127 polynomial/cra_garner.h
128 polynomial/upoly_io.h
129 polynomial/prem_uvar.h
130 polynomial/eval_uvar.h
131 polynomial/interpolate_padic_uvar.h
132 polynomial/sr_gcd_uvar.h
133 polynomial/heur_gcd_uvar.h
134 polynomial/chinrem_gcd.h
135 polynomial/collect_vargs.h
136 polynomial/divide_in_z_p.h
137 polynomial/euclid_gcd_wrap.h
138 polynomial/eval_point_finder.h
139 polynomial/newton_interpolate.h
140 polynomial/optimal_vars_finder.h
142 polynomial/poly_cra.h
143 polynomial/primes_factory.h
144 polynomial/smod_helpers.h
148 add_library(ginac ${ginaclib_sources})
149 add_library(ginac::ginac ALIAS ginac)
150 set_target_properties(ginac PROPERTIES
151 SOVERSION ${ginaclib_soversion}
152 VERSION ${ginaclib_version})
153 target_compile_definitions(ginac
154 PUBLIC $<BUILD_INTERFACE:IN_GINAC>
155 PRIVATE -DLIBEXECDIR="${LIBEXECDIR}/" HAVE_CONFIG_H
157 target_link_libraries(ginac PUBLIC cln::cln ${LIBDL_LIBRARIES})
158 target_include_directories(ginac PUBLIC
159 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
160 $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
161 $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/..>
162 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
165 if (WIN32 AND CMAKE_COMPILER_IS_GNUCXX AND BUILD_SHARED_LIBS)
166 set_target_properties(ginac PROPERTIES
167 LINK_FLAGS "-Wl,--enable-auto-import -Wl,--export-all-symbols"
171 if (NOT BUILD_SHARED_LIBS)
172 set_target_properties(ginac PROPERTIES OUTPUT_NAME "ginac")
173 # Avoid the static library vs import library conflict (necessary for
175 set_target_properties(ginac PROPERTIES PREFIX "lib")
178 install(TARGETS ginac
180 LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
181 RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
182 ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
184 install(FILES ${ginaclib_public_headers} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/ginac")
185 install(EXPORT ginac-exports
186 FILE ginac-targets.cmake
188 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ginac
192 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/function.h
193 COMMAND ${PYTHON} ${CMAKE_CURRENT_SOURCE_DIR}/function.py -o ${CMAKE_CURRENT_BINARY_DIR}/function.h ${CMAKE_CURRENT_SOURCE_DIR}/function.hppy
194 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/function.hppy ${CMAKE_CURRENT_SOURCE_DIR}/function.py)
197 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/function.cpp
198 COMMAND ${PYTHON} ${CMAKE_CURRENT_SOURCE_DIR}/function.py -o ${CMAKE_CURRENT_BINARY_DIR}/function.cpp ${CMAKE_CURRENT_SOURCE_DIR}/function.cppy
199 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/function.h ${CMAKE_CURRENT_SOURCE_DIR}/function.cppy ${CMAKE_CURRENT_SOURCE_DIR}/function.py)