@@ -4,7 +4,7 @@ project(openlibm
44 VERSION 0.8.0
55 LANGUAGES C ASM)
66
7- add_library ("${PROJECT_NAME} " STATIC )
7+ add_library ("${PROJECT_NAME} " SHARED )
88
99
1010# Find the relevant folder depending on the architecture
@@ -361,39 +361,38 @@ if (LONG_DOUBLE_NOT_DOUBLE)
361361 "${PROJECT_SRC} /ld80/s_nanl.c"
362362 )
363363 endif ()
364- endif ()
365-
366- else ()
367- if (${OPENLIBM_ARCH_FOLDER} STREQUAL "aarch64" )
368- list (APPEND OPENLIBM_C_SOURCE
369- # ld128
370- "${PROJECT_SRC} /ld128/invtrig.c"
371- "${PROJECT_SRC} /ld128/e_acoshl.c"
372- "${PROJECT_SRC} /ld128/e_powl.c"
373- "${PROJECT_SRC} /ld128/k_tanl.c"
374- "${PROJECT_SRC} /ld128/s_exp2l.c"
375- "${PROJECT_SRC} /ld128/e_atanhl.c"
376- "${PROJECT_SRC} /ld128/e_lgammal_r.c"
377- "${PROJECT_SRC} /ld128/e_sinhl.c"
378- "${PROJECT_SRC} /ld128/s_asinhl.c"
379- "${PROJECT_SRC} /ld128/s_expm1l.c"
380- "${PROJECT_SRC} /ld128/e_coshl.c"
381- "${PROJECT_SRC} /ld128/e_log10l.c"
382- "${PROJECT_SRC} /ld128/e_tgammal.c"
383- "${PROJECT_SRC} /ld128/e_expl.c"
384- "${PROJECT_SRC} /ld128/e_log2l.c"
385- "${PROJECT_SRC} /ld128/k_cosl.c"
386- "${PROJECT_SRC} /ld128/s_log1pl.c"
387- "${PROJECT_SRC} /ld128/s_tanhl.c"
388- "${PROJECT_SRC} /ld128/e_logl.c"
389- "${PROJECT_SRC} /ld128/k_sinl.c"
390- "${PROJECT_SRC} /ld128/s_erfl.c"
391- )
392-
393- if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows" )
364+ else ()
365+ if (${OPENLIBM_ARCH_FOLDER} STREQUAL "aarch64" )
394366 list (APPEND OPENLIBM_C_SOURCE
395- "${PROJECT_SRC} /ld128/s_nanl.c"
367+ # ld128
368+ "${PROJECT_SRC} /ld128/invtrig.c"
369+ "${PROJECT_SRC} /ld128/e_acoshl.c"
370+ "${PROJECT_SRC} /ld128/e_powl.c"
371+ "${PROJECT_SRC} /ld128/k_tanl.c"
372+ "${PROJECT_SRC} /ld128/s_exp2l.c"
373+ "${PROJECT_SRC} /ld128/e_atanhl.c"
374+ "${PROJECT_SRC} /ld128/e_lgammal_r.c"
375+ "${PROJECT_SRC} /ld128/e_sinhl.c"
376+ "${PROJECT_SRC} /ld128/s_asinhl.c"
377+ "${PROJECT_SRC} /ld128/s_expm1l.c"
378+ "${PROJECT_SRC} /ld128/e_coshl.c"
379+ "${PROJECT_SRC} /ld128/e_log10l.c"
380+ "${PROJECT_SRC} /ld128/e_tgammal.c"
381+ "${PROJECT_SRC} /ld128/e_expl.c"
382+ "${PROJECT_SRC} /ld128/e_log2l.c"
383+ "${PROJECT_SRC} /ld128/k_cosl.c"
384+ "${PROJECT_SRC} /ld128/s_log1pl.c"
385+ "${PROJECT_SRC} /ld128/s_tanhl.c"
386+ "${PROJECT_SRC} /ld128/e_logl.c"
387+ "${PROJECT_SRC} /ld128/k_sinl.c"
388+ "${PROJECT_SRC} /ld128/s_erfl.c"
396389 )
390+
391+ if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows" )
392+ list (APPEND OPENLIBM_C_SOURCE
393+ "${PROJECT_SRC} /ld128/s_nanl.c"
394+ )
395+ endif ()
397396 endif ()
398397 endif ()
399398endif ()
@@ -505,28 +504,24 @@ endif()
505504
506505
507506# Filter out C implementation from compilation list if a native implementation exists
508- # when generating a shared library to avoid multiple definitions
509- get_target_property (TARGET_TYPE "${PROJECT_NAME} " TYPE )
510- if (TARGET_TYPE STREQUAL SHARED_LIBRARY)
511- foreach (FILE_TO_REMOVE ${OPENLIBM_ASM_SOURCE} )
512- # Get filename and strip out extension
513- cmake_path(GET FILE_TO_REMOVE FILENAME FILENAME_TO_REMOVE)
514- cmake_path(REMOVE_EXTENSION FILENAME_TO_REMOVE OUTPUT_VARIABLE FILENAME_TO_REMOVE)
515- message (DEBUG "Filename to remove: ${FILENAME_TO_REMOVE} " )
516-
517- # Go through files and remove one with the same name
518- foreach (CUR_FILE ${OPENLIBM_C_SOURCE} )
519- cmake_path(GET CUR_FILE FILENAME CUR_FILENAME)
520- cmake_path(REMOVE_EXTENSION CUR_FILENAME OUTPUT_VARIABLE CUR_FILENAME)
521-
522- if (${CUR_FILENAME} STREQUAL ${FILENAME_TO_REMOVE} )
523- list (REMOVE_ITEM OPENLIBM_C_SOURCE ${CUR_FILE} )
524- message (DEBUG "Removed source file from compilation list: ${CUR_FILE} " )
525- break ()
526- endif ()
527- endforeach ()
507+ foreach (FILE_TO_REMOVE ${OPENLIBM_ASM_SOURCE} )
508+ # Get filename and strip out extension
509+ cmake_path(GET FILE_TO_REMOVE FILENAME FILENAME_TO_REMOVE)
510+ cmake_path(REMOVE_EXTENSION FILENAME_TO_REMOVE OUTPUT_VARIABLE FILENAME_TO_REMOVE)
511+ message (DEBUG "Filename to remove: ${FILENAME_TO_REMOVE} " )
512+
513+ # Go through files and remove one with the same name
514+ foreach (CUR_FILE ${OPENLIBM_C_SOURCE} )
515+ cmake_path(GET CUR_FILE FILENAME CUR_FILENAME)
516+ cmake_path(REMOVE_EXTENSION CUR_FILENAME OUTPUT_VARIABLE CUR_FILENAME)
517+
518+ if (${CUR_FILENAME} STREQUAL ${FILENAME_TO_REMOVE} )
519+ list (REMOVE_ITEM OPENLIBM_C_SOURCE ${CUR_FILE} )
520+ message (DEBUG "Removed source file from compilation list: ${CUR_FILE} " )
521+ break ()
522+ endif ()
528523 endforeach ()
529- endif ()
524+ endforeach ()
530525
531526
532527# Add sources
0 commit comments